From d4cc16766a5a1e613939177e04bcb0f7211c2230 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Tue, 21 Feb 2012 17:06:05 -0500 Subject: pulled new po files from Transifex --- install/po/as.po | 9562 +++++++++++++++++----------------- install/po/bn_IN.po | 9094 ++++++++++++++++---------------- install/po/de.po | 9897 +++++++++++++++++------------------ install/po/el.po | 9560 +++++++++++++++++----------------- install/po/es.po | 13288 +++++++++++++++++++++-------------------------- install/po/fa.po | 9575 +++++++++++++++++----------------- install/po/fr.po | 11476 +++++++++++++++++++++-------------------- install/po/gu.po | 9560 +++++++++++++++++----------------- install/po/he.po | 9560 +++++++++++++++++----------------- install/po/id.po | 8371 +++++++++++++++--------------- install/po/it.po | 9560 +++++++++++++++++----------------- install/po/ja.po | 9588 +++++++++++++++++----------------- install/po/kn.po | 8333 +++++++++++++++--------------- install/po/ko.po | 9575 +++++++++++++++++----------------- install/po/nl.po | 9564 +++++++++++++++++----------------- install/po/pl.po | 9207 +++++++++++++++++---------------- install/po/pt.po | 9560 +++++++++++++++++----------------- install/po/pt_BR.po | 9562 +++++++++++++++++----------------- install/po/ru.po | 8883 ++++++++++++++++---------------- install/po/sv.po | 9562 +++++++++++++++++----------------- install/po/uk.po | 14007 +++++++++++++++++++++----------------------------- install/po/zh_CN.po | 8873 ++++++++++++++++---------------- install/po/zh_TW.po | 9573 +++++++++++++++++----------------- 23 files changed, 112298 insertions(+), 113492 deletions(-) (limited to 'install/po') diff --git a/install/po/as.po b/install/po/as.po index 6d9b51b72..3276c4857 100644 --- a/install/po/as.po +++ b/install/po/as.po @@ -2,4332 +2,4145 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:49+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/team/as/)\n" +"Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/language/as/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: as\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/bn_IN.po b/install/po/bn_IN.po index 70eac1190..cc7a230df 100644 --- a/install/po/bn_IN.po +++ b/install/po/bn_IN.po @@ -2,14 +2,15 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # -# sankarshan mukhopadhyay , 2010. +# Translators: # jdennis , 2011. +# sankarshan mukhopadhyay , 2010. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" "Language-Team: Bengali (India) \n" "MIME-Version: 1.0\n" @@ -18,2422 +19,2970 @@ msgstr "" "Language: bn_IN\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "" +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "বাতিল করা হয়েছে।" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "অজানা কম্যান্ড %(name)r" + +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:664 +#, 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:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "পাসওয়ার্ড দুটি মিলছে না" + +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত" + +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/plugins/aci.py:837 -msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1230 +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " -msgstr "" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:341 +#: ipalib/frontend.py:821 msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " -msgstr "" +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "ভুল প্রকার" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "কেবলমাত্র একটি মান অনুমদিত" + +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "একটি দশমিক সংখ্যা হওয়া জরুরি" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:468 +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" +msgstr "" + +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Disable DNS Zone.\n" -" " +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "" + +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" +msgstr "" + +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" +msgstr "" + +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" +msgstr "" + +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" +msgstr "" + +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" +msgstr "" + +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" +msgstr "" + +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" +msgstr "" + +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" +msgstr "" + +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." +msgstr "" + +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "" + +#: ipalib/plugins/config.py:215 +msgid "May not be empty" +msgstr "" + +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" +msgstr "" + +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "" + +#: ipalib/plugins/delegation.py:28 +msgid "" +"\n" +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" +msgstr "" + +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" +msgstr "" + +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" +msgstr "" + +#: ipalib/plugins/delegation.py:101 +msgid "delegation" +msgstr "" + +#: ipalib/plugins/delegation.py:102 +msgid "delegations" +msgstr "" + +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "" + +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" +msgstr "" + +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" +msgstr "" + +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 +msgid "" +"Comma-separated list of permissions to grant (read, write). Default is " +"write." +msgstr "" + +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" +msgstr "" + +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" +msgstr "" + +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." +msgstr "" + +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." +msgstr "" + +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." +msgstr "" + +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." +msgstr "" + +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." +msgstr "" + +#: ipalib/plugins/dns.py:35 +msgid "" +"\n" +"Domain Name System (DNS)\n" +"\n" +"Manage DNS zone and resource records.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" +"\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" +"\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" +"\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" +"\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" +"\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" +"\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" +"\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" +"\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" +msgstr "" + +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" +msgstr "" + +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" +msgstr "" + +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" +msgstr "" + +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" +msgstr "" + +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "" + +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" +msgstr "" + +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 +msgid "" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" +msgstr "" + +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" +msgstr "" + +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" + +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "" + +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" + +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "" + +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 +msgid "" +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:439 +msgid "" +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:468 +msgid "" +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:489 +msgid "" +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" +msgstr "" + +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" +msgstr "" + +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:508 +msgid "" +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" +msgstr "" + +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" +msgstr "" + +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "" + +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" +msgstr "" + +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" +msgstr "" + +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" +msgstr "" + +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" +msgstr "" + +#: ipalib/plugins/dns.py:652 +msgid "Zone name" +msgstr "" + +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" +msgstr "" + +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" + +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" + +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" +msgstr "" + +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" + +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" +msgstr "" + +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" +msgstr "" + +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "" + +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" +msgstr "" + +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" +msgstr "" + +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" +msgstr "" + +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" +msgstr "" + +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" +msgstr "" + +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" +msgstr "" + +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" +msgstr "" + +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" +msgstr "" + +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" +msgstr "" + +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" +msgstr "" + +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" + +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" +msgstr "" + +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" +msgstr "" + +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "" + +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" +msgstr "" + +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" +msgstr "" + +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." +msgstr "" + +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" +msgstr "" + +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." +msgstr "" + +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" +msgstr "" + +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" +msgstr "" + +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" +msgstr "" + +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." +msgstr "" + +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" +msgstr "" + +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" +msgstr "" + +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." +msgstr "" + +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." +msgstr "" + +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" +msgstr "" + +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" +msgstr "" + +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" +msgstr "" + +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" +msgstr "" + +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" +msgstr "" + +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "" + +#: ipalib/plugins/dns.py:944 +msgid "Class" +msgstr "" + +#: ipalib/plugins/dns.py:945 +msgid "DNS class" +msgstr "" + +#: ipalib/plugins/dns.py:972 +#, 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:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" +msgstr "" + +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "" + +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 +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:1264 +msgid "Delete all associated records" +msgstr "" + +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." +msgstr "" + +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" +msgstr "" + +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" + +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" +msgstr "" + +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" msgstr "" -#: ipalib/plugins/entitle.py:667 +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" +msgstr "" + +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +"Entitlements\n" +"\n" +"Manage entitlements for client machines\n" +"\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" +"\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" +"\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" +"\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" +"\n" +" Display current entitlements:\n" +" ipa entitle-status\n" +"\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" +"\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" +"\n" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" +"\n" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" +msgstr "" + +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" +msgstr "" + +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" +msgstr "" + +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" +msgstr "" + +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" +msgstr "" + +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" +msgstr "" + +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" +msgstr "" + +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" +msgstr "" + +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" +msgstr "" + +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." +msgstr "" + +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." +msgstr "" + +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." +msgstr "" + +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" +msgstr "" + +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" +msgstr "" + +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" +msgstr "" + +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" +msgstr "" + +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." +msgstr "" + +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." +msgstr "" + +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." +msgstr "" + +#: ipalib/plugins/entitle.py:476 +msgid "Username" +msgstr "" + +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" +msgstr "" + +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" +msgstr "" + +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." +msgstr "" + +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" +msgstr "" + +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." +msgstr "" + +#: ipalib/plugins/entitle.py:666 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/group.py:26 msgid "" "\n" "Groups of users\n" "\n" "Manage groups of users. By default, new groups are POSIX groups. You\n" "can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" "converted to non-POSIX groups.\n" "\n" "Every group must have a description.\n" @@ -2476,146 +3025,123 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/group.py:100 +#: ipalib/plugins/group.py:81 +msgid "groups" +msgstr "" + +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 msgid "User Groups" msgstr "" -#: ipalib/plugins/group.py:108 +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" + +#: ipalib/plugins/group.py:109 msgid "Group name" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 msgid "GID" msgstr "" -#: ipalib/plugins/group.py:120 +#: ipalib/plugins/group.py:121 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:132 +#: ipalib/plugins/group.py:131 +#, python-format msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:137 +#: ipalib/plugins/group.py:136 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:155 +#, python-format msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:189 +#: ipalib/plugins/group.py:185 +#, python-format msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:194 +#: ipalib/plugins/group.py:190 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:227 +#, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 +#: ipalib/plugins/group.py:233 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" #: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:285 +#: ipalib/plugins/group.py:284 +#, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 +#: ipalib/plugins/group.py:305 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:312 +#: ipalib/plugins/group.py:311 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:331 +#: ipalib/plugins/group.py:330 msgid "Not a managed group" msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" "Host-based access control\n" @@ -2637,7 +3163,7 @@ msgid "" "\n" " Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" " anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -2645,7 +3171,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -2654,7 +3180,7 @@ msgid "" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" " ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -2665,263 +3191,211 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/hbacrule.py:126 +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "" + +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:132 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 msgid "Rule name" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 +#: ipalib/plugins/hbacrule.py:143 msgid "Rule type" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 msgid "User category" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 msgid "Host category" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:155 +#: ipalib/plugins/hbacrule.py:165 msgid "Source host category" msgstr "" -#: ipalib/plugins/hbacrule.py:156 +#: ipalib/plugins/hbacrule.py:166 msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:161 +#: ipalib/plugins/hbacrule.py:171 msgid "Service category" msgstr "" -#: ipalib/plugins/hbacrule.py:162 +#: ipalib/plugins/hbacrule.py:172 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 msgid "Enabled" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 msgid "Users" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "" - -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 msgid "Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 msgid "Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 msgid "Services" msgstr "" -#: ipalib/plugins/hbacrule.py:206 +#: ipalib/plugins/hbacrule.py:216 msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:227 +#, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:234 +#: ipalib/plugins/hbacrule.py:240 +#, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:248 +#, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:273 +#, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:290 +#: ipalib/plugins/hbacrule.py:288 +#, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:319 +#: ipalib/plugins/hbacrule.py:315 +#, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 msgid "Access time" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacsvc.py:19 +#: ipalib/plugins/hbacsvc.py:27 msgid "" "\n" "HBAC Services\n" @@ -2946,83 +3420,77 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" #: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +msgid "HBAC Services" msgstr "" #: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +msgid "HBAC Service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:80 msgid "HBAC service description" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:85 +#: ipalib/plugins/hbacsvc.py:90 +#, python-format msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:94 +#: ipalib/plugins/hbacsvc.py:98 +#, python-format msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:104 +#: ipalib/plugins/hbacsvc.py:106 +#, python-format msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/hbacsvc.py:114 +#: ipalib/plugins/hbacsvc.py:115 +#, python-format msgid "%(count)d HBAC service matched" msgid_plural "%(count)d HBAC services matched" msgstr[0] "" msgstr[1] "" #: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/hbacsvcgroup.py:24 msgid "" "\n" "HBAC Service Groups\n" @@ -3049,93 +3517,244 @@ msgid "" " ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:71 msgid "Service group name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 +#: ipalib/plugins/hbacsvcgroup.py:78 msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" #: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" #: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format msgid "%(count)d HBAC service group matched" msgid_plural "%(count)d HBAC service groups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbactest.py:27 msgid "" "\n" -" Remove members from an HBAC service group.\n" -" " +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "" + +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "" + +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "" + +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" +msgstr "" + +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "" + +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" + +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" +msgstr "" + +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" +msgstr "" + +#: ipalib/plugins/host.py:42 msgid "" "\n" "Hosts/Machines\n" @@ -3191,218 +3810,202 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" - #: ipalib/plugins/host.py:101 msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/host.py:129 +#: ipalib/plugins/host.py:142 +#, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "" + +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/host.py:231 +#: ipalib/plugins/host.py:257 msgid "Host name" msgstr "" -#: ipalib/plugins/host.py:238 +#: ipalib/plugins/host.py:264 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:242 +#: ipalib/plugins/host.py:268 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:243 +#: ipalib/plugins/host.py:269 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/host.py:248 +#: ipalib/plugins/host.py:274 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/host.py:252 +#: ipalib/plugins/host.py:278 msgid "Platform" msgstr "" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:279 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/host.py:257 +#: ipalib/plugins/host.py:283 msgid "Operating system" msgstr "" -#: ipalib/plugins/host.py:258 +#: ipalib/plugins/host.py:284 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/host.py:262 +#: ipalib/plugins/host.py:288 msgid "User password" msgstr "" -#: ipalib/plugins/host.py:263 +#: ipalib/plugins/host.py:289 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:266 +#: ipalib/plugins/host.py:292 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:271 +#: ipalib/plugins/host.py:297 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:369 +#, python-format msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:316 +#: ipalib/plugins/host.py:374 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:319 +#: ipalib/plugins/host.py:377 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:322 +#: ipalib/plugins/host.py:380 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" + +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/host.py:413 +#: ipalib/plugins/host.py:481 +#, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:426 +#: ipalib/plugins/host.py:501 +#, python-format msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:431 +#: ipalib/plugins/host.py:506 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:542 +#: ipalib/plugins/host.py:615 +#, python-format msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:549 +#: ipalib/plugins/host.py:622 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/host.py:623 +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." +msgstr "" + +#: ipalib/plugins/host.py:712 +#, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:688 +#: ipalib/plugins/host.py:789 +#, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/hostgroup.py:25 msgid "" "\n" "Groups of hosts.\n" @@ -3431,3714 +4034,3240 @@ msgid "" " ipa hostgroup-show baltimore\n" "\n" " Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" -msgstr "" - -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " -msgstr "" - -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" -msgstr "" - -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" -msgstr "" - -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "" - -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "" - -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "" - -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "" - -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "" - -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "" - -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "" - -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "" - -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "" - -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:122 +#: ipalib/plugins/hostgroup.py:131 +#, python-format msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI
follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:169 -msgid "Add Group" +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:170 -msgid "Group Settings" -msgstr "" - -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" #: ipalib/plugins/internal.py:183 -msgid "Accessing" +msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" #: ipalib/plugins/internal.py:186 -msgid "Via Service" +msgid "Find" msgstr "" #: ipalib/plugins/internal.py:187 -msgid "Any Service" +msgid "Get" msgstr "" #: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +msgid "Issue" msgstr "" #: ipalib/plugins/internal.py:189 -msgid "From" +msgid "OK" +msgstr "" + +#: ipalib/plugins/internal.py:190 +msgid "Delete" +msgstr "" + +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" #: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +msgid "Restore" +msgstr "" + +#: ipalib/plugins/internal.py:193 +msgid "Retry" +msgstr "" + +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" #: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +msgid "Update" +msgstr "" + +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" #: ipalib/plugins/internal.py:199 -msgid "Add Host" +msgid "Collapse All" msgstr "" #: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" #: ipalib/plugins/internal.py:202 -msgid "Host Settings" +msgid "Identity Settings" msgstr "" #: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +msgid "${entity} ${primary_key} Settings" msgstr "" #: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "" - -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" #: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" #: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +msgid "Operations Error" msgstr "" #: ipalib/plugins/internal.py:212 -msgid "Set OTP" +msgid "Confirmation" msgstr "" #: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" #: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" +msgstr "" + +#: ipalib/plugins/internal.py:217 +msgid "Redirection" +msgstr "" + +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" #: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +msgid "Remove ${entity}" msgstr "" #: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" #: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +msgid "Automount Location Settings" msgstr "" #: ipalib/plugins/internal.py:256 -msgid "Add Service" +msgid "Map Type" msgstr "" #: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +msgid "Direct" msgstr "" #: ipalib/plugins/internal.py:258 -msgid "Service Settings" +msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" #: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" #: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" #: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" +msgstr "" + +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/internal.py:285 +msgid "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:287 -msgid "Access this host" +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "" + +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" #: ipalib/plugins/internal.py:290 -msgid "Run Commands" +msgid "SHA1 Fingerprint" msgstr "" #: ipalib/plugins/internal.py:291 -msgid "Any Command" +msgid "Superseded" msgstr "" #: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +msgid "Unspecified" msgstr "" #: ipalib/plugins/internal.py:293 -msgid "As Whom" +msgid "Valid Certificate Present" msgstr "" #: ipalib/plugins/internal.py:294 -msgid "Any Group" +msgid "Validity" msgstr "" #: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "" - -#: ipalib/plugins/internal.py:297 -msgid "External" +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" #: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +msgid "Standard Record Types" msgstr "" #: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +msgid "Records for DNS Zone" msgstr "" #: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "" - -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "" - -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +msgid "Record Type" msgstr "" #: ipalib/plugins/internal.py:314 -msgid "Password change complete" +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" #: ipalib/plugins/internal.py:319 -msgid "Add" +msgid "Certificates" msgstr "" #: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +msgid "Consume" msgstr "" #: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "" - -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +msgid "Consume Entitlement" msgstr "" #: ipalib/plugins/internal.py:323 -msgid "Add Many" +msgid "Download" msgstr "" #: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "" - -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +msgid "Download Certificate" msgstr "" #: ipalib/plugins/internal.py:326 -msgid "Close" +msgid "Import" msgstr "" #: ipalib/plugins/internal.py:327 -msgid "Enroll" +msgid "Import Certificate" msgstr "" #: ipalib/plugins/internal.py:328 -msgid "Find" +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" #: ipalib/plugins/internal.py:329 -msgid "Get" +msgid "Loading..." msgstr "" #: ipalib/plugins/internal.py:330 -msgid "Issue" -msgstr "" - -#: ipalib/plugins/internal.py:331 -msgid "OK" +msgid "No Certificate." msgstr "" #: ipalib/plugins/internal.py:332 -msgid "Reset" +msgid "Register" msgstr "" #: ipalib/plugins/internal.py:333 -msgid "Delete" -msgstr "" - -#: ipalib/plugins/internal.py:334 -msgid "Restore" -msgstr "" - -#: ipalib/plugins/internal.py:335 -msgid "Retry" -msgstr "" - -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" #: ipalib/plugins/internal.py:338 -msgid "View" +msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" #: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" #: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" #: ipalib/plugins/internal.py:362 -msgid "Quick Links" +msgid "Access Denied" msgstr "" #: ipalib/plugins/internal.py:363 -msgid "Select All" +msgid "Access Granted" msgstr "" #: ipalib/plugins/internal.py:364 -msgid "Unselect All" +msgid "Include Disabled" msgstr "" #: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +msgid "Include Enabled" msgstr "" #: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" #: ipalib/plugins/internal.py:370 -msgid "General" +msgid "Run Test" msgstr "" #: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +msgid "Specify external ${entity}" msgstr "" #: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" #: ipalib/plugins/internal.py:378 -msgid "Audit" +msgid "Host Settings" msgstr "" #: ipalib/plugins/internal.py:379 -msgid "IPA Server" +msgid "Enrolled?" msgstr "" #: ipalib/plugins/internal.py:380 -msgid "Sudo" +msgid "Enrollment" msgstr "" #: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +msgid "Fully Qualified Host Name" msgstr "" #: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:410 +msgid "Target" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:438 +msgid "Groups" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:445 +msgid "Allow" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:446 +msgid "Any Command" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:447 +msgid "Any Group" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:451 +msgid "Deny" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:452 +msgid "External" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:453 +msgid "Access this host" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:457 +msgid "As Whom" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/migration.py:399 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d ভেরিয়াবেল" - -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "%(count)d প্লাগ-ইন লোড করা হয়েছে" -msgstr[1] "%(count)d প্লাগ-ইন লোড করা হয়েছে" +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/netgroup.py:162 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Modify a netgroup.\n" -" " +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/permission.py:19 +#: ipalib/plugins/migration.py:34 msgid "" "\n" -"Permissions\n" +"Migration to IPA\n" "\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -"A permission may not contain other permissions.\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +"The default user container is ou=People.\n" "\n" -"A permission is made up of a number of different parts:\n" +"The default group container is ou=Groups.\n" "\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" "\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" "\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" "EXAMPLES:\n" "\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" "\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" -msgstr "" - -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" -msgstr "" - -#: ipalib/plugins/permission.py:89 -msgid "" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Permission object.\n" -" " -msgstr "" - -#: ipalib/plugins/permission.py:112 -msgid "Permission name" msgstr "" -#: ipalib/plugins/permission.py:119 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/permission.py:132 +#: ipalib/plugins/migration.py:87 msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" -msgstr "" - -#: ipalib/plugins/permission.py:138 -msgid "Member of group" -msgstr "" - -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/permission.py:177 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Add a new permission.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/ping.py:37 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" PKINIT Options\n" -" " -msgstr "" - -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pkinit.py:67 +#: ipalib/plugins/migration.py:373 msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/privilege.py:45 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -" Privilege object.\n" -" " +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" Add a new privilege.\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Delete a privilege.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -" Modify a privilege.\n" -" " +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/privilege.py:115 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Search for privileges.\n" -" " +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/privilege.py:135 +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Add members to a privilege\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/privilege.py:144 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Remove members from a privilege\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/privilege.py:153 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add permissions to a privilege.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/privilege.py:177 +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d ভেরিয়াবেল" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "%(count)d প্লাগ-ইন লোড করা হয়েছে" +msgstr[1] "%(count)d প্লাগ-ইন লোড করা হয়েছে" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"Netgroups\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:72 -msgid "" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" Class of Service object used for linking policies with groups\n" -" " +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" -msgstr "" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -" Add a new group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:361 -msgid "" +"Permissions\n" +"\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" +"\n" +"A permission may not contain other permissions.\n" +"\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +"\n" +"A permission is made up of a number of different parts:\n" +"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" +"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" +"\n" +"EXAMPLES:\n" "\n" -" Delete a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:380 -msgid "" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" "\n" -" Modify a group password policy.\n" -" " +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Search for group password policies.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/permission.py:135 msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." msgstr "" -#: ipalib/plugins/role.py:151 +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Add members to a role.\n" -" " +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/role.py:167 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -" Add privileges to a role.\n" -" " +"Kerberos pkinit options\n" +"\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" +"\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" +"\n" +"For more information on anonymous pkinit see:\n" +"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" msgstr "" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" -"\n" +"Privileges\n" "\n" -"EXAMPLES:\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"A privilege may not contain other privileges.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "" + +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Password policy\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -"EXAMPLES:\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\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" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"EXAMPLES:\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmd.py:19 -msgid "" -"\n" -"Sudo Commands\n" -"\n" -"Commands used as building blocks for sudo\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" -"\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" -"\n" +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Groups of Sudo commands\n" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"Manage groups of Sudo commands.\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:109 +msgid "Delete a role." +msgstr "" + +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:117 +msgid "Modify a role." +msgstr "" + +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:125 +msgid "Search for roles." +msgstr "" + +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Self-service Permissions\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" "\n" -" Sudo Rule management\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" -msgstr "" - -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" -msgstr "" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/service.py:35 msgid "" "\n" -" Create new Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/sudorule.py:189 -msgid "" +"Services\n" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:197 -msgid "" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Search for Sudo Rule.\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:213 -msgid "" -"\n" -" Display Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:221 -msgid "" -"\n" -" Enable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +"Sudo Commands\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Commands used as building blocks for sudo\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" -"\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" -"\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" User object.\n" -" " msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" +msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "বাতিল করা হয়েছে।" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:300 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:318 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "an internal error has occurred on server at %(server)r" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "অজানা কম্যান্ড %(name)r" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "error on server %(server)r: %(error)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" + +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." +msgstr "" + +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "" + +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:641 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "command %(name)r takes no arguments" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:661 -#, 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:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "পাসওয়ার্ড দুটি মিলছে না" - -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত" - -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1272 +#: ipalib/plugins/user.py:340 #, python-format -msgid "%(desc)s: %(info)s" +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/errors.py:1303 +#: ipalib/plugins/user.py:361 #, python-format -msgid "%(info)s" -msgstr "%(info)s" +msgid "Added user \"%(value)s\"" +msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/errors.py:1334 +#: ipalib/plugins/user.py:398 #, python-format -msgid "%(attr)s: Only one value allowed." +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/errors.py:1366 +#: ipalib/plugins/user.py:477 #, python-format -msgid "Bad search filter %(info)s" +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/errors.py:1407 +#: ipalib/plugins/user.py:488 #, python-format -msgid "Certificate format error: %(error)s" -msgstr "" - -#: ipalib/errors.py:1458 -msgid "Already registered" -msgstr "" - -#: ipalib/errors.py:1474 -msgid "Not registered yet" -msgstr "" - -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "" - -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" - -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" - -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" -msgstr "" - -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" -msgstr "" - -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "ভুল প্রকার" - -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "কেবলমাত্র একটি মান অনুমদিত" - -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "একটি দশমিক সংখ্যা হওয়া জরুরি" - -#: ipalib/parameters.py:1097 -#, python-format -msgid "must be at least %(minvalue)f" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1107 +#: ipalib/plugins/user.py:563 #, python-format -msgid "can be at most %(maxvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1174 -#, python-format -msgid "must match pattern \"%(pattern)s\"" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1192 -msgid "must be binary data" +#: ipalib/plugins/user.py:585 +#, python-format +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7159,6 +7288,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7183,283 +7317,297 @@ msgstr "সিরিয়াল নম্বর পাওয়া সম্ভব msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7479,248 +7627,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7811,5 +7947,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/de.po b/install/po/de.po index 1b62da23f..43f33180b 100644 --- a/install/po/de.po +++ b/install/po/de.po @@ -2,14 +2,16 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Fabian Affolter , 2011. +# Mario Blättermann , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" -"Last-Translator: fab \n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" +"Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,7127 +19,7255 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" -msgstr "" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Geben Sie %(label)s zum Überprüfen ein:" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Passwörter stimmen nicht überein!" + +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Abgebrochen." + +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "Ein interner Fehler ist aufgetreten" + +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" -msgstr "Gruppe '%s' existiert nicht" +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "Unbekannter Befehl %(name)r" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" -msgstr "ACIs" +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "Keine Anmeldeinformationen-Cache gefunden" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" -msgstr "ACI-Namen" +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "Ticket abgelaufen" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" -msgstr "Benutzer-Gruppe" - -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" -msgstr "Berechtigungen" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" -msgstr "Attribute" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "Typ" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "%(name)r wird benötigt" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "%(name)r ungültig: %(error)s " -#: ipalib/plugins/aci.py:450 -msgid "Member of" -msgstr "Mitglied von" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" -msgstr "Mitglied einer Gruppe" +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Passwörter stimmen nicht überein" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" -msgstr "Filter" +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "Befehl nicht implementiert" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" -msgstr "" +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Dieser Eintrag existiert bereits" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/plugins/aci.py:837 -msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/plugins/aci.py:865 -msgid "" -"\n" -" Rename an ACI.\n" -" " +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1195 +#, python-format +msgid "" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/automount.py:182 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Location container for automount maps.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" -msgstr "Ort" - -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" -msgstr "Karte" - -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/frontend.py:821 +msgid "" +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" -msgstr "Key" - -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" -msgstr "Einhänge-Informationen" - -#: ipalib/plugins/automount.py:597 -msgid "description" -msgstr "Beschreibung" - -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:221 +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" -msgstr "" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" +msgstr "Gruppe '%s' existiert nicht" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" -msgstr "" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" +msgstr "ACIs" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" -msgstr "" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" +msgstr "ACI-Namen" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" -msgstr "" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" +msgstr "Benutzer-Gruppe" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" +msgstr "Berechtigungen" + +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" +msgstr "Attribute" + +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" +msgstr "Typ" + +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:458 +msgid "Member of" +msgstr "Mitglied von" + +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" +msgstr "Mitglied einer Gruppe" + +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" +msgstr "Filter" + +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:444 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" +"Auto Membership Rule.\n" "\n" -" allow_only tells us what mode to check in:\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" +"a group or hostgroup based upon attribute information.\n" "\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" "\n" -" If False then those attributes are not allowed.\n" -" " +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:727 +#: ipalib/plugins/automember.py:128 msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:750 -msgid "" -"\n" -" Retrieve an LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Remove LDAP entries from members.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" +#: ipalib/plugins/automember.py:345 +msgid "" +"\n" +" Remove conditions from an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Base class for reverse member manipulation.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:434 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Modify an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:466 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." +#: ipalib/plugins/automember.py:486 +msgid "" +"\n" +" Display information about an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/cert.py:22 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -"IPA certificate operations\n" +" Set default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:531 +msgid "" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +" Remove default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 +msgid "" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +"Automount\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"In order to request a certificate:\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +"Automount has three basic object types: locations, maps and keys.\n" +"\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" +"\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" +"\n" +"A key is a mount point associated with a map.\n" +"\n" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" "EXAMPLES:\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"Locations:\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"The following revocation reasons are supported:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"Maps:\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" +"\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" +"\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" +"\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" +"\n" +"Keys:\n" +"\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" +"\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" +"\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" +"\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" +msgstr "Ort" + +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "Zertifikat" +#: ipalib/plugins/automount.py:323 +msgid "Master file" +msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" -msgstr "Betreff" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." +msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:520 +msgid "Map" +msgstr "Karte" + +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "Grund" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" +msgstr "Key" + +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." +msgstr "" + +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" +msgstr "Einhänge-Informationen" + +#: ipalib/plugins/automount.py:615 +msgid "description" +msgstr "Beschreibung" + +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/cert.py:562 +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "Fehler" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "" -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" -msgstr "" - -#: ipalib/plugins/dns.py:272 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." +msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:382 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Create new DNS zone (SOA record).\n" -" " +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" +msgstr "Zertifikat" + +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" +msgstr "Betreff" + +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "" + +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "Grund" + +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:799 +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "Fehler" + +#: ipalib/plugins/config.py:31 msgid "" "\n" -" Delete DNS resource record.\n" -" " +"Server configuration\n" +"\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" +"\n" +"NOTES:\n" +"\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" +"\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" +"\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic server configuration:\n" +" ipa config-show\n" +"\n" +" Show all configuration options:\n" +" ipa config-show --all\n" +"\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" -msgstr "" - -#: ipalib/plugins/dns.py:940 -msgid "Hostname" -msgstr "" - -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" -msgstr "" - -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:19 -msgid "" -"\n" -"Entitlements\n" -"\n" -"Manage entitlements for client machines\n" -"\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" -"\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" -"\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" -"\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" -"\n" -" Display current entitlements:\n" -" ipa entitle-status\n" -"\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" -"\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" -"\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" -"\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:206 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Display current entitlements\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" -msgstr "" - -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:314 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" +"Group to Group Delegation\n" "\n" -"Every group must have a description.\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" "\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" +msgstr "" + +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Create a new group.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." +msgstr "" + +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/group.py:257 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -" Display information about a named group.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:265 -msgid "" +"Domain Name System (DNS)\n" "\n" -" Add members to a group.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:273 -msgid "" +"Manage DNS zone and resource records.\n" "\n" -" Remove members from a group.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:281 -msgid "" +"EXAMPLES:\n" "\n" -" Detach a managed group from a user\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/group.py:288 -msgid "" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" -msgstr "" - -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" -msgstr "" - -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" -msgstr "" - -#: ipalib/plugins/hbacrule.py:19 -msgid "" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"Host-based access control\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -"EXAMPLES:\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:103 -msgid "" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" "\n" -" HBAC object.\n" -" " +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:215 +#: ipalib/plugins/dns.py:309 msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:266 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Search for HBAC rules.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "" + +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:385 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:452 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:496 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" HBAC Service object.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:724 +msgid "SOA class" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:422 +#: ipalib/plugins/dns.py:972 +#, python-format msgid "" -"\n" -" Delete a host.\n" -" " +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/host.py:643 +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Display information about a host.\n" -" " +"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/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 -msgid "" -"\n" -"Groups of hosts.\n" -"\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:104 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -" Delete a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/hostgroup.py:114 -msgid "" +"Entitlements\n" "\n" -" Modify a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/hostgroup.py:124 -msgid "" +"Manage entitlements for client machines\n" "\n" -" Search for hostgroups.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Display information about a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:144 -msgid "" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add members to a hostgroup.\n" -" " +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" +"\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" +"\n" +" Display current entitlements:\n" +" ipa entitle-status\n" +"\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" +"\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" +"\n" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" +"\n" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:126 +#: ipalib/plugins/group.py:26 msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" -msgstr "" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" -msgstr "Automount" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" +msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/kerberos.py:20 +#: ipalib/plugins/hostgroup.py:131 +#, python-format msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:215 +msgid "Hide details" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" Add a new privilege.\n" -" " +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Delete a privilege.\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 -msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" +msgstr "" + +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" + +#: ipalib/plugins/internal.py:494 +msgid "" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "" + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "Automount" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" + +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "" + +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" + +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "" + +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "" + +#: ipalib/plugins/internal.py:513 +msgid "undo" +msgstr "" + +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" + +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" +msgstr "" + +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "" + +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:25 +msgid "" +"\n" +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "" + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." +msgstr "" + +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "" + +#: ipalib/plugins/migration.py:255 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "" + +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "" + +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "" + +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "" + +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "" + +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" +msgstr "" + +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" +msgstr "" + +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" +msgstr "" + +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" + +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" +msgstr "" + +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" + +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "" + +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" + +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" + +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" + +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "" + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "" + +#: ipalib/plugins/migration.py:448 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "" + +#: ipalib/plugins/misc.py:25 +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" + +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "" + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" +msgstr "" + +#: ipalib/plugins/netgroup.py:28 +msgid "" +"\n" +"Netgroups\n" +"\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" +"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" +"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" +"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" +msgstr "" + +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" +msgstr "" + +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" +msgstr "" + +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" + +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" + +#: ipalib/plugins/passwd.py:28 +msgid "" +"\n" +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:27 +msgid "" +"\n" +"Permissions\n" +"\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" +"\n" +"A permission may not contain other permissions.\n" +"\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +"\n" +"A permission is made up of a number of different parts:\n" +"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" +"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " -msgstr "" +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Kerberos pkinit options\n" "\n" -"Roles can not contain other roles.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" -msgstr "" - -#: ipalib/plugins/role.py:62 -msgid "" +"For more information on anonymous pkinit see:\n" "\n" -" Role object.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:81 -msgid "Role" -msgstr "" - -#: ipalib/plugins/role.py:86 -msgid "Role name" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/role.py:111 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Delete a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/role.py:121 -msgid "" +"Privileges\n" "\n" -" Modify a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/role.py:131 -msgid "" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Search for roles.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/role.py:143 -msgid "" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Add members to a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:159 -msgid "" +"A privilege may not contain other privileges.\n" "\n" -" Remove members from a role.\n" -" " +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/selfservice.py:19 -msgid "" -"\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" -"\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" -"\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" -"\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" -msgstr "" +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"Password policy\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmd.py:19 -msgid "" -"\n" -"Sudo Commands\n" -"\n" -"Commands used as building blocks for sudo\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" -"\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" -"\n" +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Groups of Sudo commands\n" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"Manage groups of Sudo commands.\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/role.py:82 +msgid "Role" +msgstr "" + +#: ipalib/plugins/role.py:87 +msgid "Role name" +msgstr "" + +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "" + +#: ipalib/plugins/role.py:101 +msgid "Add a new role." +msgstr "" + +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:109 +msgid "Delete a role." +msgstr "" + +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Self-service Permissions\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" "\n" -" Sudo Rule management\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" -msgstr "" - -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" -msgstr "" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/service.py:35 msgid "" "\n" -" Create new Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/sudorule.py:189 -msgid "" +"Services\n" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:197 -msgid "" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Display Sudo Rule.\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:221 -msgid "" -"\n" -" Enable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:20 -msgid "" -"\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" -"\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" -"\n" -"EXAMPLES:\n" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudocmd.py:29 +msgid "" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +"Sudo Commands\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +"Commands used as building blocks for sudo\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +"EXAMPLES:\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" -msgstr "" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Geben Sie %(label)s zum Überprüfen ein:" - -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "Passwörter stimmen nicht überein!" - -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "Abgebrochen." +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "an internal error has occurred on server at %(server)r" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "error on server %(server)r: %(error)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" -msgstr "Keine Anmeldeinformationen-Cache gefunden" - -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "Ticket abgelaufen" - -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:298 +#, python-format +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "%(name)r ungültig: %(error)s " +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7158,6 +7288,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7182,283 +7317,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7478,248 +7627,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7810,5 +7947,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/el.po b/install/po/el.po index 9227c5b8e..cc2f3e7d6 100644 --- a/install/po/el.po +++ b/install/po/el.po @@ -2,12 +2,13 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:48+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" @@ -16,4318 +17,4130 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/es.po b/install/po/es.po index ebe8f44cc..b976d8239 100644 --- a/install/po/es.po +++ b/install/po/es.po @@ -1,18 +1,20 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. -# -# Hugo Jiménez Hernández , 2011. -# jdennis , 2011. +# +# Translators: +# Eduardo Villagrán M , 2012. # gguerrer , 2011. # Héctor Daniel Cabrera , 2011. +# Hugo Jiménez Hernández , 2011. +# jdennis , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-10-12 23:51+0000\n" -"Last-Translator: John Dennis \n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" +"Last-Translator: Eduardo Villagrán M \n" "Language-Team: Spanish (Castilian) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,8968 +22,7255 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" -msgstr "" -"\n" -"Sub-paquete que contiene todos los complementos del núcleo.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Ingrese %(label)s nuevamente para verificar: " -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" -msgstr "" -"\n" -"Instrucciones de control de acceso al directorio del servidor (ACIs)\n" -"\n" -"ACIs son utilizadas para permitir o negar acceso a la información. Actualmente este módulo\n" -"está diseñado para permitir el acceso (no para negarlo).\n" -"\n" -"Los comandos aci están diseñados para garantizar permisos que permitan actualizar\n" -"o eliminar entradas existentes, o para añadir nuevas. El objetivo de ACIs\n" -"que se ofrece hunto a IPA es el de ofrecer un conjunto de permisos de bajo nivel que\n" -"garanticen acceso a grupos especiales denominados grupos de tareas. Estos permisos de\n" -"nivel bajo pueden ser transformados en funciones que garanticen acceso más amplio. Estas\n" -"funciones son otro tipo de grupo, denominados funciones.\n" -"\n" -"Por ejemplo, si posee grupos de tareas que permiten agregar y modificar usuarios, podría\n" -"crear la función useradmin. Podría asignar usuarios a la función useradmin\n" -"para permitirles realizar las operaciones definidas por el grupo de tareas.\n" -"\n" -"Puede crear ACIs que deleguen permisos de modo que los usuarios en el grupo A puedan modificar\n" -"atributos en el grupo B.\n" -"\n" -"La opción type es un mapeo que se aplica a todas las entradas en las ubicaciones\n" -"de equipo de grupos o de usuario. Ha sido creada fundamentalmente para ser\n" -"utilizada cuando se garanticen permisos agregados (por ejemplo escribir nuevas entradas).\n" -"\n" -"Un ACI se constituye de tres partes:\n" -"1. destino\n" -"2. permisos\n" -"3. reglas de obligación\n" -"\n" -"El destino es un conjunto de reglas que definen los objetos LDAP que están\n" -"siendo utilizados. Este elemento incluye una lista de atributos, un área del árbol\n" -"del LDPA en cuestión, y un filtro LDAP.\n" -"\n" -"Los destinos son:\n" -"- attrs: lista de los atributos involucrados\n" -"- type: un tipo de objeto (user, group, host, service, etc)\n" -"- memberof: miembros de un grupo\n" -"- targetgroup: garantiza el acceso para modificar un grupo específico. Esto ha sido diseñado\n" -" fundamentalmente para habilitar usuarios, o agregar o eliminar miembros de un grupo específico.\n" -"- filter: Un filtro LDAP legal utilizado para precisar el alcance del destino.\n" -"- subtree: Utilizado para aplicar una regla sobre todo un conjunto de objetos. Por ejemplo,\n" -" para permitir agregar usuarios a los que necesite garantizarles permisos para que puedan \"agregar\" en el sub árbol\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. La opción sub árbol\n" -" es a prueba de fallos para objetos que puedan haber quedado fuera de la opción tipo.\n" -"\n" -"Los permisos definen qué es lo que le es permitido realizar al ACI, y pueden ser uno o más\n" -"1. write - modifica uno o más atributos\n" -"2. read - lee uno o más atributos\n" -"3. add - agrega una nueva entrada en el árbol\n" -"4. delete - elimina una entrada existente\n" -"5. all - se garantizan todos los permisos\n" -"\n" -"Tenga en cuenta la diferencia entre atributos y entradas. Los permisos son\n" -"independientes, de modo que ser capaz de agregar un usuario no significa que el usuario podrá\n" -"ser modificable.\n" -"\n" -"La regla de obligación define a quién le garabtiza permisos el ACI en cuestión. El servidor LDAP\n" -"permite esto a cualquier entrada LDAP válida, pero sugerimos la utilización del grupo de tareas\n" -"de modo que los derechos puedan ser compartidos fácilmente a través de las funciones.\n" -"\n" -"Para obtener una mayor descripción de los controles de accesos visite\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EJEMPLOS:\n" -"\n" -"NOTA: Ahora los ACIs son agregados mediante el complemento de permisos. Estos ejemplos se ofrecen para\n" -"demostrar de qué manera funcionan las diferentes opciones, pero esto es hoy en día realizado mediante la\n" -"línea de comando de permisos (vea el último ejemplo).\n" -"\n" -" Agregar un ACI de modo que el grupo \"secretaries\" pueda actualizar la dirección sobre cualquier usuario:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Mostrar el nuevo ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Agregar un ACI que otorgue permisos a los miembros de \"addusers\" para que puedan agregar nuevos usuarios:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Agregar un ACI que permita a los miembros de \"editors\" administrar miembros del grupo \"admins\":\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Agregar un ACI que permita a los miembros del grupo \"admin\" administrar la calle y el código postal de aquellos que forman parte del grupo \"editors\":\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Agregar un ACI que permita al grupo \"admins\" administrar la calle y el código postal de aquellos que trabajen para el jefe:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Agregar un nuevo registro completo a IPA que no se encuentre cubierto por ninguna de las opciones --type, creando un permiso:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"El comando show muestra el ACI raw 389-ds.\n" -"\n" -"IMPORTANTE: Cuando se modifiquen los atributos de destino de un ACI ya existente\n" -"debe también incluir todos los atributos existentes. Cuando se realice un aci-mod, el\n" -"targetattr REEMPLAZA los atributos actuales, no se los agrega.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "¡Las contraseñas no coinciden!" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "Una lista de valores ACI" +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Cancelado." -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -"\n" -" Dado un nombre y un prefijo construir un nombre de ACI." -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -"\n" -" Analizar el nombre de ACI crudo y devolver una tupla que contenga el prefijo\n" -" de ACI y el nombre de ACI real." -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -"\n" -" Obtenga el nombre del grupo de un filtro de memberOf" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -"\n" -" Dado un nombre y un conjunto de palabras clave construir una ACI." -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "tipo, filtro, subárbol y grupo de destino, se excluyen mutuamente" +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" -msgstr "Se requiere prefijo de ACI " +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "Pruebe `ipa --help` para una lista de opciones generales." -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -"es necesario como mínimo alguno de: tipo, filtro, subárbol, grupo de " -"destino, atributos, o miembro de " -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" -msgstr "filtro y memberof son mutuamente excluyentes" +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "Nombre del comando" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" -msgstr "grupo, permisos y auto son mutuamente excluyentes" +#: ipalib/cli.py:1130 +msgid "No file to read" +msgstr "No existe el fichero para leer" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" -msgstr "Uno de grupo, permiso o self es necesario" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" -msgstr "El grupo '%s' no existe" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "error %(code)d desconocido de %(server)s: %(error)s" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" -msgstr "Vaciar filtro" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "ha ocurrido un error interno" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" -msgstr "Error de sintaxis: %(error)s " +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "ha ocurrido un error interno en el servidor en %(server)r" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" -"Convertir una ACI en sus palabras equivalentes. \n" -" Esto se utiliza para la operación de modificación para que podamos combinar kw entrante y ACI existente ACI y pasar el resultado a _make_aci()." +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "comando desconocido %(name)r" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" -msgstr "No se encuentra un ACI cuyo nombre sea \"%s\"" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "error en el servidor %(server)r: %(error)s" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" -msgstr "Prefijo ACI" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "no es posible conectar con %(uri)r: %(error)s" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "" -"Prefijo utilizado para distinguir los tipos de ACI (permiso,delegación, " -"autoservicio, ninguno)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Petición JSON-RPC no válida: %(error)s" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" -"\n" -" Objeto ACI" +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "error de clasificación para el transporte de datos XML-RPC: %(error)s " -#: ipalib/plugins/aci.py:412 -msgid "ACIs" -msgstr "ACI" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Error de kerberos: %(major)s/%(minor)s" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" -msgstr "Nombre de ACI" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "no se ha recibido ninguna credencial de Kerberos" -#: ipalib/plugins/aci.py:422 -msgid "Permission" -msgstr "Permiso" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "El servicio %(service)r no se ha encontrado en la base de datos Kerberos" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" -msgstr "El permiso ACI permite el acceso a" +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "No se han encontrado credenciales de cache" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" -msgstr "Grupo de usuarios" +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "El ticket ha expirado" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" -msgstr "El grupo de usuarios ACI permite el acceso a" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "Los permisos de credenciales de caché son incorrectos" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" -msgstr "Permisos" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "Las credenciales de caché están mal formadas" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" -msgstr "" -"lista separada por comas de la concesión de permisos (leer, escribir, " -"agregar, eliminar, todos) " +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "No es posible resolver KDC para el reinado solicitado" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" -msgstr "Atributos" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Acceso insuficiente: %(info)s" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" -msgstr "Lista de atributos separada por comas" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "el comando %(name)r no tiene argumentos" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "Tipo" +#: ipalib/errors.py:664 +#, 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] "el comando %(name)r lleva al menos %(count)d argumento" +msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "" -"Objeto de tipo IPA (usuario, grupo, grupo de host, servicio, grupo de red)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "superponiendo argumentos y opciones: %(names)r" -#: ipalib/plugins/aci.py:450 -msgid "Member of" -msgstr "Miembro de" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "%(name)r es necesario" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" -msgstr "Miembro de un grupo" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "%(name)r inválido: %(error)s" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" -msgstr "Filtro" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "API no posee tal nombre de espacio: %(name)r" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Filtro legal LDAP (p.ej. ou=Ingeniería)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Las contraseñas no coinciden" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" -msgstr "Subárbol" +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "El comando no se ha implementado" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" -msgstr "Subárbol al que aplicar ACI" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "El cliente no está configurado. Ejecutar la API de cliente a instalar." -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" -msgstr "Grupo elegido" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" -msgstr "Grupo al que aplicar ACI" +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Esta entrada ya existe" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" -msgstr "Dirija su propia entrada (usted)" - -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" -msgstr "Aplique ACI a su propia entrada (usted)" - -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " -msgstr "" -"\n" -" Crear nuevos ACI." - -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" -msgstr "Ha sido creado ACI \"%(value)s\"" - -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" -msgstr "Probar la sintaxis pero no escribir nada" - -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " -msgstr "" -"\n" -" Ejecute la operación aci-create.\n" -"\n" -" Retorna la entrada como será creada en LDAP.\n" -"\n" -" :param aciname: El nombre de la ACI a agregar.\n" -" :param kw: Otros argumentos de palabra clave para atributos de LDAP.\n" -" " - -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " -msgstr "" -"\n" -" Borrar ACI." - -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "Ha sido eliminado ACI \"%(value)s\"" - -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " -msgstr "" -"\n" -" Ejecute la operación aci-delete.\n" -" :param aciname: El nombre de la ACI se agrega. \n" -" :param kw: sin uso" - -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " -msgstr "" -"\n" -" Modficar ACI." - -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" -msgstr "ACI" - -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "Ha sido modificado ACI \"%(value)s\"" - -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " -msgstr "" -"\n" -" Buscar ACI\n" -"\n" -" Retorna una lista de ACI\n" -"\n" -" EJEMPLOS:\n" -"\n" -" Para hallar todas las ACI que se aplican directamente a miembros del grupo ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" Para hallar todas las ACI que otorgan acceso add:\n" -" ipa aci-find --permissions=add \n" -"\n" -" Observe que el comando find solamente busca el texto dado en el conjunto de\n" -" ACI, no evalúa las ACI para ver si algo se aplicaría.\n" -" Por ejemplo, la búsqueda de memberof=ipausers hallaría que\n" -" tiene ipusers como un memberof. Puede haber ACI que se aplican a \n" -" miembros de ese grupo indirectamente.\n" -" " - -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "%(count)d ACI coincidente" -msgstr[1] "%(count)d ACIs coincidentes" - -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " -msgstr "" -"\n" -" Mostrar una sola ACI dado un nombre de ACI." - -#: ipalib/plugins/aci.py:837 -msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " -msgstr "" -"\n" -" Ejecutar la operación de aci-show. \n" -"\n" -" Devuelve la entrada: \n" -"\n" -" uid parámetros: el nombre de inicio de sesión del \n" -" usuario para recuperar.: param kw: sin usar\n" -" " - -#: ipalib/plugins/aci.py:865 -msgid "" -"\n" -" Rename an ACI.\n" -" " -msgstr "" -"\n" -" Cambiar el nombre de un AIC." - -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" -msgstr "Nuevo nombre de ACI" - -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" -msgstr "ACI renombrado a \"%(value)s\"" - -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" -msgstr "" -"\n" -"Automount\n" -"\n" -"Almacena configuración de automount(8) para autofs(8) en IPA.\n" -"\n" -"La base de una configuración de montaje automático es el archivo de configuración auto.master.\n" -"Se trata también de la ubicación de base en IPA. Varias configuraciones de auto.master\n" -"se pueden almacenar independientemente. Una ubicación es la implementación-específica\n" -"con el predeterminado siendo la ubicación llamada 'default'. Por ejemplo, puede tener ubicaciones por\n" -"regiones geográficas, por piso, por tipo, etc.\n" -"\n" -"Automount tiene tres tipos de objetos básicos: ubicaciones, mapas y llaves.\n" -"\n" -"Una ubicación define un conjunto de mapas anclados en un auto.master. Esto le permite\n" -"almacenar múltiples configuraciones de montaje automático. Una ubicación es sí misma \n" -"no es muy interesante, es solo el punto de inicio de un nuevo mapa de montaje automático.\n" -"\n" -"Un mapa es aproximadamente equivalente a un archivo de montaje automático discreto y proporciona\n" -"almacenamiento para llaves.\n" -"\n" -"Una llave es un punto de montaje asociado a un mapa.\n" -"\n" -"Al crear una ubicación, se crean automáticamente dos mapas para\n" -"ella: auto.master y auto.direct. auto.master es el mapa de raíz para todos\n" -"los mapas de montaje automático para la ubicación. auto.direct es el mapa predeterminado\n" -"para montajes directos y se monta en /-.\n" -"\n" -"EJEMPLOS:\n" -"\n" -"Ubicaciones:\n" -"\n" -" Crear una ubicación llamada, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Mostrar la nueva ubicación:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Buscar ubicaciones disponibles:\n" -" ipa automountlocation-find\n" -"\n" -" Remover una ubicación denominada:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Mostrar lo que los mapas de automontaje les gustaría mirar si estuvieran en el sistema de archivos:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Importar una configuración existente en una ubicación:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" La importación fallará si se encuentran entradas duplicadas. Para\n" -" operación continua donde se ignoran los errores use la opción\n" -" --continue.\n" -"\n" -"Mapas:\n" -"\n" -" Crear un nuevo mapa, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Mostrar el nuevo mapa:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Buscar mapas en la ubicación de baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remover el mapa auto.share:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Crear una nueva llave para el mapa auto.share en la ubicación baltimore. Esto vincula\n" -" el mapa creado anteriormente a auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Crear una nueva llave para nuestro mapa auto.share, un montaje NFS para páginas man:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Buscar todas las llaves para el mapa auto.share:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Buscar todas las claves de automount directas:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remover la clave de man del mapa auto.share:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" - -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " -msgstr "" -"\n" -" Ubicación de contenedores para los mapas de auto montaje." - -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" -msgstr "Ubicaciones de automontado" - -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" -msgstr "Ubicación" - -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." -msgstr "Nombre de la ubicación de montaje automático." - -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " -msgstr "" -"\n" -" Crear un lugar de montaje automático nuevo." - -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " -msgstr "" -"\n" -" Eliminar una ubicación de montaje automático." - -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " -msgstr "" -"\n" -" Mostrar una ubicación de montaje automático." - -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " -msgstr "" -"\n" -" Buscar una ubicación de montaje automático." - -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " -msgstr "" -"\n" -" Generar archivos de montaje automático para un lugar específico." - -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " -msgstr "" -"\n" -" Importar archivos de montaje automático para una ubicación específica." - -#: ipalib/plugins/automount.py:314 -msgid "Master file" -msgstr "Archivo maestro" - -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." -msgstr "Archivo maestro automount." - -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "" -"Modo de funcionamiento continuo. Reporta los errores, pero el proceso " -"continúa." - -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" -msgstr "No se encontró el archivo %(file)s " - -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " -msgstr "" -"\n" -" La idea básica es leer el archivo maestro y crear todos los mapas \n" -" que necesitamos, entonces lea cada archivo de mapa\n" -" y añada todas las claves al mapa." - -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " -msgstr "" -"\n" -" Objeto de mapa de montaje automático." - -#: ipalib/plugins/automount.py:505 -msgid "Map" -msgstr "Mapa" - -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." -msgstr "Nombre del mapa automount." - -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "Descripción" - -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" -msgstr "Mapas de montaje automático" - -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " -msgstr "" -"\n" -" Crear un mapa de montaje automático." - -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " -msgstr "" -"\n" -" Eliminar un mapa de montaje automático." - -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " -msgstr "" -"\n" -" Modificar un mapa de montaje automático." - -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " -msgstr "" -"\n" -" Buscar un mapa de montaje automático." - -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " -msgstr "" -"\n" -" Mostrar un mapa de montaje automático." - -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " -msgstr "" -"\n" -" Objeto de clave de montaje automático." - -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" -msgstr "Llave" - -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." -msgstr "Nombre de clave de montaje automático" - -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" -msgstr "Información de montaje" - -#: ipalib/plugins/automount.py:597 -msgid "description" -msgstr "descripción" - -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" -msgstr "Llaves de montaje automático" - -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" -msgstr "" -"El par de claves, la información debe ser único. Un nombre clave %(key)s " -"con información %(info)s ya existe" - -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" -msgstr "ya existe una llave denominada %(key)s" - -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "La clave de montaje automático %(key)s con info %(info)s no existe" - -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." -msgstr "" -"Se ha encontrado más de una entrada con la llave %(key)s, utilice --info " -"para seleccionar una entrada específica." - -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " -msgstr "" -"\n" -" Crear una clave de montaje automático." - -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " -msgstr "" -"\n" -" Crear un nuevo punto de montaje indirecto." - -#: ipalib/plugins/automount.py:748 -msgid "Mount point" -msgstr "Punto de montaje" - -#: ipalib/plugins/automount.py:752 -msgid "Parent map" -msgstr "Mapa del padre" - -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." -msgstr "" -"Nombre del mapa de montaje automático de padre (por defecto: auto.master)." - -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " -msgstr "" -"\n" -" Eliminar una clave de montaje automático." - -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " -msgstr "" -"\n" -" Modificar una llave de montaje automático." - -#: ipalib/plugins/automount.py:809 -msgid "New mount information" -msgstr "Nueva información de montaje" - -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " -msgstr "" -"\n" -" Búsqueda de una clave de montaje automático." +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "Debe registrar el equipo para poder generar un servicio de host" -#: ipalib/plugins/automount.py:844 +#: ipalib/errors.py:861 +#, python-format msgid "" -"\n" -" Display an automount key.\n" -" " -msgstr "" -"\n" -" Mostrar una llave de montaje automático." +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "El servicio principal no tiene la forma de servicio/nombre de equipo totalmente calificado: %(reason)s" -#: ipalib/plugins/baseldap.py:19 +#: ipalib/errors.py:877 msgid "" -"\n" -"Base classes for LDAP plugins.\n" -msgstr "" -"\n" -"Clase de bases para los complementos de LDAP.\n" - -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" -msgstr "Miembros fallidos" - -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" -msgstr "Usuarios miembros" - -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" -msgstr "Grupos de miembros" - -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" -msgstr "Miembros de los grupos" - -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" -msgstr "Equipos miembro" - -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" -msgstr "Grupos de equipo miembro" - -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" -msgstr "Miembro de los grupos de equipo" - -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" -msgstr "Roles" - -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" -msgstr "Grupos de comando sudo" - -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" -msgstr "Concesión de privilegios a los roles" - -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" -msgstr "Miembros de netgroups" - -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" -msgstr "Miembros de netgroups" +"The realm for the principal does not match the realm for this IPA server" +msgstr "El reinado para el principal no coincide con el reinado para este servidor IPA" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" -msgstr "Servicios de miembros" +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "Este comando necesita acceso de usuario root" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" -msgstr "" +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "Este ya es un grupo posix" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" -msgstr "Grupos de servicio de Miembros HBAC" +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "El principal no tiene la forma usuario@REINADO: %(principal)r" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" -msgstr "Usuarios indirectos miembros" +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "Esta entrada ya está habilitada" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" -msgstr "Grupos de miembros indirectos" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "Esta entrada ya está desactivada" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" -msgstr "Hosts de miembros indirectos" +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "Esta entrada no puede ser activada o desactivada" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" -msgstr "Miembros indirectos de host-groups" +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "Esta entrada no es miembro" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" -msgstr "Roles de miembros indirectos" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "Un grupo no puede ser miembro de sí mismo" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" -msgstr "Permisos indirectos de miembro " +#: ipalib/errors.py:1021 +msgid "This entry is already a member" +msgstr "Esta entrada ya es un miembro" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" -msgstr "Servicio HBAC de miembro indirecto" +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Falló la decodificación base64: %(reason)s" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" -msgstr "Grupo de servicio HBAC de miembros indirectos " +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "Un grupo no puede ser agregado como miembro de sí mismo" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" -msgstr "Miembros indirectos netgroups" +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "El grupo de usuarios predeterminado no puede ser eliminado" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" -msgstr "Equipo externo" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "El equipo no posee un registro DNS A con el que se corresponda " -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" -msgstr "Falló host/hostgroups" +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "No se permite eliminar un grupo administrado. Primero debe ser desasociado. " -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" -msgstr "Falló usuarios/grupos" +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "Un grupo administrado no puede tener una política de contraseñas." -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" -msgstr "Falló managedby" +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "'%(entry)s' no tiene certificado" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" -msgstr "No se ha podido quitar" +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "No se puede crear un grupo privado. Un grupo de '%(group)s' ya existe." -#: ipalib/plugins/baseldap.py:171 +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " -msgstr "" -"\n" -" Dada una lista de valores en la forma name=value, devuelve una lista de nombre." +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "Se encontró un problema al verificar si todos los miembros eran %(verb)s: %(exc)s" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -"\n" -" Al agregar o quitar miembros inversa estamos falsificando una actualización\n" -" de un objeto A mediante la actualización del atributo de miembro en el objeto B.\n" -" El complemento memberof hace que este trabajo añada o quite el atributo\n" -" memberof desde o hacia un objeto, solamente se necesita un poco de tiempo.\n" -"\n" -" Este hara bucle por 6+ segundos, recuperando el objeto A para que podamos\n" -" ver si todos los atributos memberof se han actualizado.\n" -" " -#: ipalib/plugins/baseldap.py:241 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -"\n" -" Objeto que representa una entrada LDAP." -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" -msgstr "Entrada" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "no existe un comando para el tópico de ayuda %(topic)r" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" -msgstr "no se encuentra la entrada (%(container)s) de contenedor" +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "la modificación choca con otra modificación diferente" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: no se encuentra %(oname)s" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "no existen modificaciones a ser realizadas" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: no se encuentra %(oname)s" +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s:%(info)s" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "%(oname)s con el nombre \"%(pkey)s\" ya existe" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "han sido excedidos los límites para esta consulta" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." -msgstr "" -"Añadir un par de atributo y valor. El atributo debe ser parte del esquema." +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." -msgstr "" -"Establecer un atributo a un par nombre y valor. El formato es attr=value. \n" -"Para los atributos de valor múltiple, el comando sustituye los valores ya presentes." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "modificar la clave principal no está permitido" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" -"\n" -" Si el conjunto de objectclasses es limitado, haga que sean actualizados\n" -" solo aquellos en entry_attrs (más dn)\n" -"\n" -" allow_only nos dice qué modo registrar:\n" -"\n" -" Si el valor es True entonces verificamos que los atributos se encuentren en la lista\n" -" de los permitidos.\n" -"\n" -" Si el valor es False entonces tales atributos no están permitidos.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr " %(attr)s : Solamente un valor permitido." -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " -msgstr "" -"\n" -" Interfaz de registro de devolución de llamada" +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s: sintaxis inválida." -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" -"\n" -" Crear una nueva entrada en LDAP." +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "%(info)s de filtro de búsqueda errado" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " -msgstr "" -"\n" -" Clase de base para los comandos que necesita para recuperar una entrada existente." +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "La operación certificada no puede ser completada: %(error)s" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " -msgstr "" -"\n" -" Clase de base para los comandos que necesita para recuperar una o más de las entradas existentes." +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Error de certificado de formato: %(error)s " -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." -msgstr "Modo continuo: No se detenga en los errores." +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "Ya está registrado" -#: ipalib/plugins/baseldap.py:750 -msgid "" -"\n" -" Retrieve an LDAP entry.\n" -" " -msgstr "" -"\n" -" Recuperar una entrada LDAP." +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "Aún no está registrado" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" -msgstr "Derechos" +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "Los resultados se encuentran truncados, intente realizar una búsqueda más específica" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 +#: ipalib/frontend.py:821 msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." -msgstr "" -"Mostrar los derechos de acceso de esta entrada (requiere --all). Consulte la" -" página man de IPA para más detalles." +"Retrieve and print all attributes from the server. Affects command output." +msgstr "Recuperar e imprimir todos los atributos del servidor. Afecta a la salida del comando." -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " -msgstr "" -"\n" -" Actualización de una entrada LDAP." +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." +msgstr "Imprimir entradas como almacenadas en el servidor. Solamente afecta formato de salida." -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" -msgstr "Cambiar el nombre de" +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "Versión de cliente. Se utiliza para determinar si el servidor va a aceptar la solicitud." -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" -msgstr "Cambie el nombre del %(ldap_obj_name)s objeto" +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "Reenvía al servidor en lugar de ejecutarse localmente" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" -msgstr "la entrada fue eliminada mientras estaba siendo modificada" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "Un diccionario representando una entrada LDAP" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " -msgstr "" -"\n" -" Eliminar una entrada LDAP y todos sus subentradas directas." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "Una lista de entradas LDAP" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " -msgstr "" -"\n" -" Clase de base para la manipulación de miembros." +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "Todos los comandos deberían por lo menos tener un resultado" -#: ipalib/plugins/baseldap.py:1120 -msgid "" -"\n" -" Add other LDAP entries to members.\n" -" " -msgstr "" -"\n" -" Agregar otras entradas de LDAP a los miembros." +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "tipo incorrecto" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" -msgstr "Miembros que no han podido ser añadidos" +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "Sólo se permite un valor" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" -msgstr "Cantidad de miembros añadidos" +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "debe ser True o False" -#: ipalib/plugins/baseldap.py:1226 -msgid "" -"\n" -" Remove LDAP entries from members.\n" -" " -msgstr "" -"\n" -" Eliminar entradas de LDAP de los miembros." +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "debe ser un entero" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" -msgstr "Miembros que no han podido ser eliminados" +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "debe ser como mínimo %(minvalue)d" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" -msgstr "Cantidad de miembros eliminados" +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "puede ser como máximo %(maxvalue)d" + +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "debe ser un número decimal" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "debe ser como mínimo %(minvalue)f" + +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "puede ser como máximo %(maxvalue)f" + +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "debe coincidir con el modelo \"%(pattern)s" -#: ipalib/plugins/baseldap.py:1335 -msgid "" -"\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " -msgstr "" -"\n" -" Recuperar todas las entradas de LDAP con las características indicadas." +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "debe ser un dato binario" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "Tiempo límite" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "debe ser como mínimo de %(minlength)d bytes" -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" -msgstr "Tiempo máximo de búsqueda en segundos" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "puede ser a lo sumo de %(maxlength)d bytes" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" -msgstr "Tamaño límite" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "debe ser exactamente de %(length)d bytes" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "Cantidad máxima de entradas obtenidas" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "debe ser texto Unicode" -#: ipalib/plugins/baseldap.py:1552 -msgid "" -"\n" -" Base class for reverse member manipulation.\n" -" " +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -"\n" -" Clase de base para la manipulación de miembro de reversa" -#: ipalib/plugins/baseldap.py:1574 -msgid "" -"\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" -" " -msgstr "" -"\n" -" Agregar otros ingresos de LDAP a los miembros de reversa. \n" -" La llamada se parece a \"añadir A a B\", pero en realidad ejecuta agregar B a A para manejar membresía de reversa." +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "debe tener como mínimo %(minlength)d caracteres" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" -msgstr "agregado" +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "puede tener a lo sumo %(maxlength)d caracteres" -#: ipalib/plugins/baseldap.py:1687 -msgid "" -"\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " -msgstr "" -"\n" -" Retire otras entradas LDAP de los miembros de reversa. La llamada se parece a \"eliminar una de B\", pero en realidad ejecuta quitar B de A para manejar membresía de reversa." +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "debe tener exactamente %(length)d caracteres" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" -msgstr "eliminado" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." +msgstr "El carácter '%(char)r' no está permitido." -#: ipalib/plugins/batch.py:21 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" -msgstr "" -"\n" -"Complemento para realizar múltiples llamadas ipa mediante una llamada de procedimiento remota\n" -"\n" -"Para ejecutar este código en el lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"donde el contenido del archivo batch_request.json debe ser como el del siguiente ejemplo\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"El formato de la respuesta es anidado de la misma forma. En la parte superior se podrá observar\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"Y entonces, una respuesta anidada por cada método de comando IPA enviado en la petición\n" -"\n" +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "debe ser uno de %(values)r" -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "Métodos anidados para ejecutar" +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" +msgstr "Una lista de valores ACI" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" -"Versión de cliente. Se utiliza para determinar si el servidor va a aceptar " -"la solicitud." +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "tipo, filtro, subárbol y grupo de destino, se excluyen mutuamente" -#: ipalib/plugins/cert.py:22 -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" -"\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -"\n" -"In order to request a certificate:\n" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -"\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" -msgstr "" -"\n" -"Operaciones de certificado IPA\n" -"\n" -"Ejecuta un conjunto de comandos para administrar los certificados SSL del servidor.\n" -"\n" -"Las solicitudes de certificados existen en la forma de Solicitud de Firma de Certificado (CSR)\n" -"en formato PEM.\n" -"\n" -"Si utiliza el back end de autofirma el asunto en la CSR debe coincidir\n" -"con el asunto configurado en el servidor. El Certificado dogtag usa justo el valor CN\n" -"de la CSR y fuerza al resto del asunto.\n" -"\n" -"Un certificado se almacena con un principal de servicio y un principal de servicio que el host\n" -"necesita.\n" -"\n" -"Para solicitar un certificado:\n" -"\n" -"* El host debe existir\n" -"* El servicio debe existir (o use la opción --add para añadirlo automáticamente)\n" -"\n" -"EJEMPLOS:\n" -"\n" -" Solicite un nuevo certificado y añada el principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Recupere un certificado existente:\n" -" ipa cert-show 1032\n" -"\n" -" Recupere un certificado (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Retire un certificado del estatus de suspendido:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Revise el estatus de una solicitud de firma:\n" -" ipa cert-status 10\n" -"\n" -"IPA inmediatamente acepta (o declina) todas las solicitudes de certificado\n" -"por lo tanto, el estatus de una solicitud no suele ser normal. Esto es para el uso futuro o \n" -"el caso en el que un CA no expide inmediatamente un certificado.\n" -"\n" -"Las siguientes razones de revocación están soportadas:\n" -"\n" -" * 0 - no especificado\n" -" * 1 - compromiso de clave\n" -" * 2 - compromiso de cA\n" -" * 3 - afiliación cambiada\n" -" * 4 - sustituida\n" -" * 5 - cese de operación\n" -" * 6 - certificado retenido\n" -" * 8 - retirar de CRL\n" -" * 9 - privilegio negado \n" -" * 10 - Compromiso A\n" -"\n" -"Observe que la razón del código 7 no se utiliza. Consulte RFC 5280 para mayor información:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" +msgstr "Se requiere prefijo de ACI " -#: ipalib/plugins/cert.py:104 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " -msgstr "" -"\n" -" Devuelve el valor de CN en el asunto de la solicitud o Ninguno" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "es necesario como mínimo alguno de: tipo, filtro, subárbol, grupo de destino, atributos, o miembro de " -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" -msgstr "" -"Falla al intentar decodificar la petición de identificación de certificado" +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" +msgstr "filtro y memberof son mutuamente excluyentes" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " -msgstr "" -"\n" -" Devuelve el valor inicial del nombre alt del sujeto, si lo hay" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" +msgstr "grupo, permisos y auto son mutuamente excluyentes" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" -msgstr "" -"Falla al intentar decodificar la petición de identificación de certificado" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" +msgstr "Uno de grupo, permiso o self es necesario" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " -msgstr "" -"\n" -" Asegúrese de que la CSR esté codificada en base 64 y puede ser descifrada por nuestro analizador PKCS#10\n" -" analizador." +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" +msgstr "El grupo '%s' no existe" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "" -"Falla al intentar decodificar la petición de identificación de certificado: " -"%s" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" +msgstr "Vaciar filtro" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" -"\n" -" Franja y capa inicial y final al COMIENZO y FIN del bloque" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "Error de sintaxis:%(error)s " -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" -"\n" -" Convertir un SN dado en decimal o hexadecimal. \n" -"Devuelve el número o ninguno si la conversión falla." +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "No se encuentra un ACI cuyo nombre sea \"%s\"" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " -msgstr "" -"\n" -" Dada una entidad con o sin un reino devuelva la parte del host." +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" +msgstr "Prefijo ACI" -#: ipalib/plugins/cert.py:202 +#: ipalib/plugins/aci.py:401 msgid "" -"\n" -" Submit a certificate signing request.\n" -" " -msgstr "" -"\n" -" Enviar una solicitud de certificado de firma." +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "Prefijo utilizado para distinguir los tipos de ACI (permiso,delegación, autoservicio, ninguno)" + +#: ipalib/plugins/aci.py:412 +msgid "ACIs" +msgstr "ACI" + +#: ipalib/plugins/aci.py:417 +msgid "ACI name" +msgstr "Nombre de ACI" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" -msgstr "Principal" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" +msgstr "Permiso" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" -"Principal del servicio para este certificado (p.ej. HTTP/prueba.ejemplo.com)" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" +msgstr "El permiso ACI permite el acceso a" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" -msgstr "si no existe, agregar automáticamente el principal" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" +msgstr "Grupo de usuarios" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "Certificado" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" +msgstr "El grupo de usuarios ACI permite el acceso a" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" -msgstr "Asunto" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" +msgstr "Permisos" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" -msgstr "Emisor" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" +msgstr "lista separada por comas de la concesión de permisos (leer, escribir, agregar, eliminar, todos) " -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" -msgstr "No antes de" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" +msgstr "Atributos" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" -msgstr "No luego de" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" +msgstr "Lista de atributos separada por comas" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" -msgstr "Huella digital (MD5)" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" +msgstr "Tipo" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" -msgstr "Huella digital (SHA1)" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "Objeto de tipo IPA (usuario, grupo, grupo de host, servicio, grupo de red)" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" -msgstr "Número de serie" +#: ipalib/plugins/aci.py:458 +msgid "Member of" +msgstr "Miembro de" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" -msgstr "Nombre de la variable de mapeo de dicionario a valorizar " +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" +msgstr "Miembro de un grupo" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " -msgstr "" -"\n" -" Comprobar el estado de una solicitud de certificado de firma." +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" +msgstr "Filtro" -#: ipalib/plugins/cert.py:402 -msgid "Request id" -msgstr "Id de la petición" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Filtro legal LDAP (p.ej. ou=Ingeniería)" -#: ipalib/plugins/cert.py:408 -msgid "Request status" -msgstr "Estado de la petición" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" +msgstr "Subárbol" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "Número de serie en decimales, o hexadecimales, si tiene un prefijo 0x" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" +msgstr "Subárbol al que aplicar ACI" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " -msgstr "" -"\n" -" Recuperar un certificado existente." +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" +msgstr "Grupo elegido" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" -msgstr "Motivo de la revocación" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" +msgstr "Grupo al que aplicar API" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" -msgstr "Nombre de archivo de salida" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" +msgstr "Dirija su propia entrada (usted)" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." -msgstr "Archivo para almacenar el certificado" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" +msgstr "Aplique ACI a su propia entrada (usted)" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " -msgstr "" -"\n" -" Revocar un certificado." +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "Ha sido creado ACI \"%(value)s\"" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" -msgstr "Revocado" +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "Probar la sintaxis pero no escribir nada" -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "Motivo" +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Ha sido eliminado ACI \"%(value)s\"" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "Motivo por el cual el certificado ha sido revocado (0-10)" +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "ACI" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " -msgstr "" -"\n" -" Tome un certificado revocado que esté en espera." +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Ha sido modificado ACI \"%(value)s\"" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" -msgstr "No revocado" +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI coincidente" +msgstr[1] "%(count)d ACIs coincidentes" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "Error" +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr " Nuevo nombre de ACI" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI renombrado a \"%(value)s\"" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" +"Auto Membership Rule.\n" "\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\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" +"a group or hostgroup based upon attribute information.\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" "\n" -"Server Configuration.\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" -msgstr "" -"\n" -"Administrar la configuración de IPA\n" +"EXAMPLES:\n" "\n" -"Administra los valores predeterminados que IPA usa y algunos parámetros de ajuste.\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" "\n" -" Para mostrar la configuración actual:\n" -" ipa config-show\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" "\n" -" Para modificar la configuración:\n" -" ipa config-mod --maxusername=99\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" "\n" -"Las opciones actuales son:\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" "\n" -"Opciones de administración de usuario:\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" "\n" -" --maxusername=INT Máxima logitud al crear o modificar un usuario\n" -" --homedirectory=STR Ubicación predeterminada de directorios principales (por defecto: /home)\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" "\n" -" --defaultshell=STR Shell predeterminada para nuevos usuarios (predeterminada: /bin/sh)\n" -" --defaultgroup=STR Grupo predeterminado para nuevos usuarios (predeterminado: ipausers). \n" -" grupo debe existir o añadir nuevos usuarios \n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" "\n" -" --emaildomain=STR Predeterminado: email domain para nuevos usuarios\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" "\n" -"Buscar opciones de ajuste. Impactan la cantidad de datos \n" -"y\n" -"la cantidad de registros que retornan de una determinada búsqueda.\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or \n" -"-1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" "\n" -"Configuración de servidor.\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" "\n" -"El valor de notificación de contraseña se almacena aquí, por lo tanto será replicado.\n" -"No se utiliza actualmente para notificar a usuarios antes de la expiración de contraseña.\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" "\n" -"Algunos atributos son de solo-lectura, se proporcionan únicamente para propósitos informativos. Estos atributos\n" -"incluyen:\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" "\n" -"Base de asunto de certificado: la base de asunto de certificado configurada,\n" -" e.g. O=EXAMPLE.COM.\n" -" Es configurable únicamente en el momento de instalación.\n" -"Funcionalidades de conexión de contraseña: actualmente define almohadillas que la\n" -" contraseña generará (pueden haber otras condiciones).\n" - -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." -msgstr "searchtimelimit debe ser -1 o > 1." - -#: ipalib/plugins/config.py:80 -msgid "" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" "\n" -" IPA configuration object\n" -" " +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -"\n" -" Objeto de configuración IPA" - -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" -msgstr "Configuración" - -#: ipalib/plugins/config.py:96 -msgid "Max. username length" -msgstr "Máxima longitud de nombre de usuario" - -#: ipalib/plugins/config.py:101 -msgid "Home directory base" -msgstr "Base del directorio principal" - -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." -msgstr "Ubicación predeterminada de los directorios principales." - -#: ipalib/plugins/config.py:106 -msgid "Default shell" -msgstr "Shell predeterminada" - -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." -msgstr "Shell predeterminada para los nuevos usuarios." - -#: ipalib/plugins/config.py:111 -msgid "Default users group" -msgstr "Grupo de usuarios predeterminado" - -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." -msgstr "Grupo predeterminado para los nuevos usuarios." -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -"Correo electrónico de dominio predeterminado para los nuevos usuarios" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." -msgstr "Correo electrónico de dominio predeterminado de nuevos usuarios." - -#: ipalib/plugins/config.py:121 -msgid "Search time limit" -msgstr "Buscar límite de tiempo" - -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -"Cantidad de tiempo (seg.) máxima para una búsqueda (> 0, o -1 para un " -"número ilimitado)." - -#: ipalib/plugins/config.py:127 -msgid "Search size limit" -msgstr "Límite del tamaño de la búsqueda" - -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." -msgstr "Número máximo de registros para buscar (-1 es ilimitado)." - -#: ipalib/plugins/config.py:133 -msgid "User search fields" -msgstr "Campos de búsqueda de usuario" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -"Una lista separada por comas de los campos en la búsqueda de usuarios." -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -"Una lista separada por comas de los campos a buscar en la búsqueda de " -"grupos." - -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "Modo de migración" - -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." -msgstr "Activar el modo de migración." - -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" -msgstr "Base de certificado de asunto" - -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." -msgstr "Base para asuntos de certificados (OU=Test,O=Example)." - -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" -msgstr "Grupo predeterminado objectclass" - -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." -msgstr "Grupo predeterminado objectclassses (lista separada por comas)." - -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" -msgstr "Usuario predeterminado objectclasses" - -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." -msgstr "objectclassses predeterminado de usuario (lista separada por comas)." - -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" -msgstr "Notificación de vencimiento de contraseña" - -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." -msgstr "Número de días de aviso de caducidad de la contraseña." -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" -msgstr "Funciones del complemento de contraseña" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." -msgstr "Hash adicional para generar la contraseña plug-in." +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -"\n" -" Modificar las opciones de configuración." -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -"\n" -" Mostrar la configuración actual." -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "Descripción" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -"\n" -"Delegación Grupo a Grupo\n" -"\n" -"Un permiso permite a la delegación de permisos de grano fino. Las reglas de control de acceso,\n" -"o las instrucciones (ACI), otorgan permiso a los permisos para realizar determinada tarea, como agregar un usuario, modificar un grupo, etc \n" -"\n" -"Delegaciones Grupo a Grupo otorgan a los miembros de un grupo para actualizar\n" -"un conjunto de atributos de los miembros de otro grupo.\n" -"\n" -"EJEMPLOS: \n" -"\n" -"Agregar una regla de la delegación a las casas editoriales para editar direcciones de administrador:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street' \n" -"\n" -"Al administrar la lista de los atributos que necesita para incluir a todos los atributos, \n" -"incluyendo los ya existentes. Añada PostalCode a la lista: \n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Mostrar nuestra regla actualizada: \n" -" ipa delegation-show 'editors edit admins street' \n" -"\n" -"Eliminar una regla\n" -" ipa delegation-del 'editors edit admins street'\n" -#: ipalib/plugins/delegation.py:56 +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "Grupo Predeterminado" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" +msgstr "Grupo: %s no encontrado!" + +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s no es un atributo válido." + +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" +" Add an automember rule.\n" " " msgstr "" -"\n" -" memberOf está en el filtro, pero queremos sacar el grupo para facilitar la visualización." -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" -msgstr "Delegación ' %(permission)s ' no encontrado" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" -msgstr "Error al recuperar grupo de miembro %(group)s: %(error)s " +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "" -#: ipalib/plugins/delegation.py:79 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" +" Add conditions to an automember rule.\n" " " msgstr "" + +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "" + +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "Condiciones que no pueden ser agregadas" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "Número de condiciones agregadas" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 +msgid "" "\n" -" Determinar si la ACI es un ACI Delegación y\n" -" elevar una excepción si no lo es. \n" -" Devuelva el resultado si se trata de\n" -" una delegación de ACI, agregando un nuevo membergroup de atributo." +" Override this so we can add completed and failed to the return result.\n" +" " +msgstr "" -#: ipalib/plugins/delegation.py:95 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Delegation object.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -"\n" -" objeto de delegación." -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" -msgstr "Delegación" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" +msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" -msgstr "Nombre de delegación" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "Condiciones que no pueden ser eliminadas" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "Número de condiciones eliminadas" + +#: ipalib/plugins/automember.py:418 msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +"\n" +" Override this so we can set completed and failed.\n" +" " msgstr "" -"Lista separada por comas de los permisos a otorgar (lectura, escritura). El " -"valor predeterminado es escritura." -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" -msgstr "Miembro del grupo de usuarios" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " +msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" -msgstr "Grupo de usuarios para solicitar a la delegación" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "" -#: ipalib/plugins/delegation.py:152 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Add a new delegation.\n" +" Delete an automember rule.\n" " " msgstr "" -"\n" -" Añadir una nueva delegación." -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" -msgstr "Delegación añadida \"%(value)s\"" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" -#: ipalib/plugins/delegation.py:176 +#: ipalib/plugins/automember.py:466 msgid "" "\n" -" Delete a delegation.\n" +" Search for automember rules.\n" " " msgstr "" -"\n" -" Eliminación de una delegación." -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" -msgstr "Delegación eliminada \"%(value)s\"" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/delegation.py:197 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Modify a delegation.\n" +" Display information about an automember rule.\n" " " msgstr "" + +#: ipalib/plugins/automember.py:502 +msgid "" "\n" -" Modificar una delegación." +" Set default group for all unmatched entries.\n" +" " +msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" -msgstr "Delegación modificada \"%(value)s\"" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" +msgstr "" -#: ipalib/plugins/delegation.py:219 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Search for delegations.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -"\n" -" Búsqueda de delegaciones." -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "%(count)d delegación coincidente" -msgstr[1] "%(count)d delegaciones coincidentes" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" -#: ipalib/plugins/delegation.py:250 +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 msgid "" "\n" -" Display information about a delegation.\n" +" Display information about the default automember groups.\n" " " msgstr "" -"\n" -" Muestra información acerca de una delegación." -#: ipalib/plugins/dns.py:20 +#: ipalib/plugins/automount.py:29 msgid "" "\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" +"Automount\n" "\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" +"A key is a mount point associated with a map.\n" "\n" -" A record: 1.2.3.4, 11.22.33.44\n" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"EXAMPLES:\n" "\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" +"Locations:\n" "\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" -msgstr "" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -"sistema de nombres de dominio (DNS)\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -"administra zona DNS y registros de recursos.\n" +"Maps:\n" "\n" -"EJEMPLOS:\n" -" añadir nueva zona:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Añadir segundo nombre de servidor para example.com: \n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Añadir un correo de servidor para example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -" Eliminar nombre de servidores añadidos previamente de example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -" Añadir un nuevo registro A para www.example.com: (IP aleatoria)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" +"Keys:\n" "\n" -" Añadir un nuevo registro PTR para www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -" \n" -" Añadir nuevos registros SRV para servidores LDAP. Tres cuartas partes de las peticiones deberían ir a fast.example.com, un cuarto a slow.example.com. Si ninguno están disponibles, cambia a backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -" Cuando el comando dnsrecord-add se ejecuta sin opciones para añadir un registro especifico, se inicia un modo interactivo. Interactivamente se van mostrando los tipos de registros mas usuales para la zona respectiva: \n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -" El modo interactivo puede usar también para eliminar registros de DNS:\n" -" ipa dnsrecord-del example.com www\n" -" Ninguna opción para borrar el registro indicado.\n" -" ¿Borrar todos? si/No(Por defecto No): (No borrar todos los registros)\n" -" Contenido actual del registro DNS:\n" -"\n" -" Un registro: 1.2.3.4, 11.22.33.44\n" -" ¿Borrar Registro A '1.2.3.4'? Si/No (por defecto No): \n" -" ¿Borrar Registro A '11.22.33.44'? Si/No (por defecto No):s \n" -" \n" -" Nombre registro: www\n" -" registro A: 1.2.3.4 (registro A 11.22.33.44 ha sido borrado)\n" -"\n" -" mostrar zona example.com:\n" -" ipa dnszone-show example.com\n" -" Encontrar zona con \"example \" en su nombre de dominio:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -" ipa dnszone-find example\n" -"Encontrar registros para recursos con \"www\" in su nombre en la zona example.com:\n" -" ipa dnsrecord-find example.com www\n" -"Encontrar registros A con valor 10.10.0.1 en la zona example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -" Mostrar registros para recurso www en zona example.com\n" -" ipa dnsrecord-show example.com www\n" -"Borrar zona example.com con todos los registros de recursos:\n" -" ipa dnszone-del example.com\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -"Resolver un nombre de host para ver si existe(añadirá por dominio IPA por defecto si no hay uno incluido):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" +msgstr "\n\\n\nAutomount\\n\n\\n\nAlmacena configuración de automount(8) para autofs(8) en IPA.\\n\n\\n\nLa base de una configuración de montaje automático es el archivo de configuración auto.master.\\n\nSe trata también de la ubicación de base en IPA. Varias configuraciones de auto.master\\n\nse pueden almacenar independientemente. Una ubicación es la implementación-específica\\n\ncon el predeterminado siendo la ubicación llamada 'default'. Por ejemplo, puede tener ubicaciones por\\n\nregiones geográficas, por piso, por tipo, etc.\\n\n\\n\nAutomount tiene tres tipos de objetos básicos: ubicaciones, mapas y llaves.\\n\n\\n\nUna ubicación define un conjunto de mapas anclados en un auto.master. Esto le permite\\n\nalmacenar múltiples configuraciones de montaje automático. Una ubicación es sí misma \\n\nno es muy interesante, es solo el punto de inicio de un nuevo mapa de montaje automático.\\n\n\\n\nUn mapa es aproximadamente equivalente a un archivo de montaje automático discreto y proporciona\\n\nalmacenamiento para llaves.\\n\n\\n\nUna llave es un punto de montaje asociado a un mapa.\\n\n\\n\nAl crear una ubicación, se crean automáticamente dos mapas para\\n\nella: auto.master y auto.direct. auto.master es el mapa de raíz para todos\\n\nlos mapas de montaje automático para la ubicación. auto.direct es el mapa predeterminado\\n\npara montajes directos y se monta en /-.\\n\n\\n\nEJEMPLOS:\\n\n\\n\nUbicaciones:\\n\n\\n\n Crear una ubicación llamada, \\\"Baltimore\\\":\\n\n ipa automountlocation-add baltimore\\n\n\\n\n Mostrar la nueva ubicación:\\n\n ipa automountlocation-show baltimore\\n\n\\n\n Buscar ubicaciones disponibles:\\n\n ipa automountlocation-find\\n\n\\n\n Remover una ubicación denominada:\\n\n ipa automountlocation-del baltimore\\n\n\\n\n Mostrar lo que los mapas de automontaje les gustaría mirar si estuvieran en el sistema de archivos:\\n\n ipa automountlocation-tofiles baltimore\\n\n\\n\n Importar una configuración existente en una ubicación:\\n\n ipa automountlocation-import baltimore /etc/auto.master\\n\n\\n\n La importación fallará si se encuentran entradas duplicadas. Para\\n\n operación continua donde se ignoran los errores use la opción\\n\n --continue.\\n\n\\n\nMapas:\\n\n\\n\n Crear un nuevo mapa, \\\"auto.share\\\":\\n\n ipa automountmap-add baltimore auto.share\\n\n\\n\n Mostrar el nuevo mapa:\\n\n ipa automountmap-show baltimore auto.share\\n\n\\n\n Buscar mapas en la ubicación de baltimore:\\n\n ipa automountmap-find baltimore\\n\n\\n\n Remover el mapa auto.share:\\n\n ipa automountmap-del baltimore auto.share\\n\n\\n\nKeys:\\n\n\\n\n Crear una nueva llave para el mapa auto.share en la ubicación baltimore. Esto vincula\\n\n el mapa creado anteriormente a auto.master:\\n\n ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\\n\n\\n\n Crear una nueva llave para nuestro mapa auto.share, un montaje NFS para páginas man:\\n\n ipa automountkey-add baltimore auto.share --key=man --info=\\\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\\\"\\n\n\\n\n Buscar todas las llaves para el mapa auto.share:\\n\n ipa automountkey-find baltimore auto.share\\n\n\\n\n Buscar todas las claves de automount directas:\\n\n ipa automountkey-find baltimore --key=/-\\n\n\\n\n Remover la clave de man del mapa auto.share:\\n\n ipa automountkey-del baltimore auto.share --key=man\\n\n" + +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "" + +#: ipalib/plugins/automount.py:192 +msgid "automount locations" +msgstr "" + +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" +msgstr "Ubicaciones de automontado" + +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "" + +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" +msgstr "Ubicación" + +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." +msgstr "Nombre de la ubicación de montaje automático." + +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." +msgstr "" + +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." +msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." -msgstr "Generar número de serie de zonas." +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " -msgstr "Consulte RFC 2915" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -"El servidor de nombre '%(host)s' no tiene su correspondiente registro " -"A/AAAA" -#: ipalib/plugins/dns.py:272 +#: ipalib/plugins/automount.py:323 +msgid "Master file" +msgstr " Archivo maestro" + +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." +msgstr " Archivo maestro automount." + +#: ipalib/plugins/automount.py:331 msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +"Continuous operation mode. Errors are reported but the process continues." +msgstr " Modo de funcionamiento continuo. Reporta los errores, pero el proceso continúa." + +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" +msgstr "No se encontró el archivo %(file)s " + +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -"\n" -" Zona DNS, contenedor de registros de recursos." -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" +msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" -msgstr "Nombre de la zona" +#: ipalib/plugins/automount.py:520 +msgid "Map" +msgstr "Mapa" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" -msgstr "Nombre de la zona (FQDN)" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." +msgstr " Nombre del mapa automount." -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" -msgstr "Nombre de servidor autoritativo" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" +msgstr "Mapas de montaje automático" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." -msgstr "Nombre de servidor autoritativo." +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" +msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" -msgstr "Correo-e de administrador" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." +msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" -msgstr "Serie SOA" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" -msgstr "Número de serie de registro SOA" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." +msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" -msgstr "Actualizar SOA" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" -msgstr "registro SOA tiempo de actualización" +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" -msgstr "Reintentar SOA" +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" -msgstr "tiempo de reintento de " +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" -msgstr "Expirar SOA" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" -msgstr "tiempo de expiración de registro SOA" +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" -msgstr "Mínimo SOA" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -"¿Por cuánto tiempo las respuestas negativas deben guardarse en cache?" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" -msgstr "Tiempo para abandonar SOA" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" -msgstr "tiempo de vida de registro SOA" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" +msgstr "Llave" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" -msgstr "Clase SOA" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." +msgstr " Nombre de clave de montaje automático" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" -msgstr "Clase de registro SOA " +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" +msgstr "Información de montaje" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" -msgstr "Política de actualización de BIND" +#: ipalib/plugins/automount.py:615 +msgid "description" +msgstr "descripción" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" -msgstr "Activar zona" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "Llaves de montaje automático" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" -msgstr "¿Está la zona activa?" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" -msgstr "Actualización dinámica" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "El par de claves, la información debe ser único. Un nombre clave %(key)s con información %(info)s ya existe" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." -msgstr "Permitir actualizaciones dinámicas." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" +msgstr "ya existe una llave denominada %(key)s" + +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "La clave de montaje automático %(key)s con info %(info)s no existe" -#: ipalib/plugins/dns.py:382 +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "Se ha encontrado más de una entrada con la llave %(key)s, utilice --info para seleccionar una entrada específica." + +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -"\n" -" Crear nueva zona DNS (registro SOA)." -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" -msgstr "Forzar" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." -msgstr "Fuerza la creación de la zona DNS del servidor de nombres no en DNS." +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" -msgstr "Agregue el servidor de nombres de DNS con esta dirección IP" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" -msgstr "DNS no está configurado" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" +msgstr "Punto de montaje" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " -msgstr "" -"\n" -" Eliminar zona DNS (registro SOA)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" +msgstr "Mapa del padre" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." +msgstr "Nombre del mapa de montaje automático de padre (por defecto: auto.master)." + +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -"\n" -" Modificar zona DNS (registro SOA)." -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -"\n" -" Búsqueda de zonas DNS (registros SOA)." -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -"\n" -" Mostrar información sobre una zona DNS (registro SOA)." -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -"\n" -" Desactivar zona de DNS." -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" -msgstr "Zona de DNS desactivada \"%(value)s\" " +#: ipalib/plugins/automount.py:846 +msgid "New mount information" +msgstr "Nueva información de montaje" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -"\n" -" Habilitar zona DNS." -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" -msgstr "Zona DNS habilitada \" %(value)s \"" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -"\n" -" Registro DNS." -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" -msgstr "Registro de recursos DNS" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "Contraseña" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" -msgstr "Nombre de registro" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" +msgstr "Miembros fallidos" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" -msgstr "Tiempo para abandonar" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" +msgstr "Usuarios miembros" -#: ipalib/plugins/dns.py:538 -msgid "Class" -msgstr "Clase" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" +msgstr "Grupos de miembros" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" -msgstr "Clase DNS" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" +msgstr "Miembros de los grupos" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " -msgstr "" -"\n" -" Clase base para los comandos de registro DNS con opciones de registro." +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" +msgstr "Equipos miembro" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " -msgstr "" -"\n" -" Clase de base para añadir o eliminar registros de las entradas de recursos DNS." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" +msgstr "Grupos de equipo miembro" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " -msgstr "" -"\n" -" Agregar registros a recursos DNS." +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" +msgstr "Miembro de los grupos de equipo" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" +msgstr " Roles" + +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" +msgstr "Grupos de comando sudo" + +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" +msgstr "Concesión de privilegios a los roles" + +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" +msgstr " Miembros de netgroups" + +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" +msgstr "Miembros de netgroups" + +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" +msgstr "Servicios de miembros" + +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" +msgstr "\\n\nServicios\\n\n\\n\nUn servicio IPA representa un servicio que se ejecuta en un host. El registro del servicio IPA\\n\npuede almacenar la principal de kerberos, un certificado SSL, o ambos.\\n\n\\n\nUn servicio IPA puede administrarse directamente desde una máquina, siempre y cuando\\n\nla máquina tenga el permiso correcto. Esto es cierto, incluso para\\n\nmáquinas que no están asociadas con el servicio. Por ejemplo,\\n\nsolicitando un certificado SSL mediante credenciales principales de servicio de host.\\n\nPara administrar un servicio mediante credenciales de host necesita\\n\nejecutar kinit como el host:\\n\n\\n\n # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\\n\n\\n\nAñadir un servicio IPA le permite al servicio asociado solicitar un certificado o una tabla de claves\\n\nSSL, pero esto se realiza como un paso independiente; no se producen como\\n\ncomo resultado de añadir un servicio\\n\nSolamente el aspecto público de un certificado es almacenado en un registro de servicio;\\n\nla clave privada no es almacenada.\\n\n\\n\nEJEMPLOS:\\n\n\\n\n Añadir un nuevo servicio IPA:\\n\n ipa service-add HTTP/web.example.com\\n\n\\n\n Permitir a un host administrar un certificado de servicio IPA:\\n\n ipa service-add-host --hosts=web.example.com HTTP/web.example.com\\n\n ipa role-add-member --hosts=web.example.com certadmin\\n\n\\n\n Borra un servicio IPA:\\n\n ipa service-del HTTP/web.example.com\\n\n\\n\n Buscar todos los servicio IPA asociados con un host:\\n\n ipa service-find web.example.com\\n\n\\n\n Buscar todos los servicios HTTP:\\n\n ipa service-find HTTP\\n\n\\n\n Desactivar la clave del servicio de kerberos y certificado SSL:\\n\n ipa service-disable HTTP/web.example.com\\n\n\\n\n Solicitar un certificado para un servicio IPA:\\n\n ipa cert-request --principal=HTTP/web.example.com example.csr\\n\n\\n\n Generar y recuperar una tabla de claves para un servicio IPA:\\n\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\\n\n\\n" + +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -"\n" -" Añadir nuevo registro de recursos DNS." -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" -msgstr "" -"Forzar la creación del registro DNS, aunque su nombre no sea absoluto" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" +msgstr "Grupos de servicio de Miembros HBAC" + +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" +msgstr "Usuarios indirectos miembros" + +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" +msgstr "Grupos de miembros indirectos" + +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" +msgstr "Hosts de miembros indirectos" + +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" +msgstr "Miembros indirectos de host-groups" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" -msgstr "" -"La zona invertida para registro PTR debería ser una sub-zona de uno de los " -"siguientes dominios integramente cualificados: %s" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" +msgstr "Roles de miembros indirectos" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" -msgstr "" -"La zona invertida %s requiere exactamente %d componentes de direcciones IP, " -"%d dados" +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" +msgstr "\\n\nPermisos indirectos de miembro " -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" -msgstr "" -"Registro PTR '%s' no está integramente cualificado(compruebe último '.')" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" +msgstr "Servicio HBAC de miembro indirecto" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " -msgstr "" -"\n" -" Eliminar entrada de registro de DNS." +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" +msgstr "Grupo de servicio HBAC de miembros indirectos " -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" -msgstr "Registro eliminado \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" +msgstr "Miembros indirectos netgroups" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " -msgstr "" -"\n" -" Eliminar registro de recursos DNS." +#: ipalib/plugins/baseldap.py:148 +msgid "External host" +msgstr "Equipo externo" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -"Ni --del-all ni opciones para borrar un registro en concreto ha sido especificado.\n" -"El comando de ayuda puede ser consultado para ver los tipos de registros soportados." -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" -msgstr "Eliminar todos los registros asociados" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" +msgstr "Falló host/hostgroups" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." -msgstr "Ninguna opción para borrar un registro en concreto especificado." +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" +msgstr "Falló usuarios/grupos" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" -msgstr "¿Borrar todos?" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" +msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" -msgstr "Contenidos actuales del registro DNS:\n" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" +msgstr "Falló managedby" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" -msgstr "registro %s con valor %s no encontrado " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" +msgstr "No se ha podido quitar" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -"\n" -" Mostrar recursos de DNS." -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -"\n" -" Búsqueda de recursos de DNS." -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " -msgstr "" -"\n" -" Resolver un nombre de host en DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" +msgstr "Entrada" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" -msgstr "Ha sido encontrado '%(value)s'" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "no se encuentra la entrada (%(container)s) de contenedor" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" -msgstr "Nombre del equipo anfitrión" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: no se encuentra %(oname)s" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" -msgstr "No ha sido encontrado el equipo anfitrión '%(host)s' " +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: no se encuentra %(oname)s" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" -"\n" -" Comprueba si alguno de los servidores tiene habilitado el servicio DNS." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr " %(oname)s con el nombre \"%(pkey)s\" ya existe" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/baseldap.py:632 msgid "" -"\n" -"Entitlements\n" -"\n" -"Manage entitlements for client machines\n" -"\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" -"\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" -"\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" -"\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" -"\n" -" Display current entitlements:\n" -" ipa entitle-status\n" -"\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" -"\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" -"\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" -"\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" -"\n" -"Derechos\n" -"\n" -"Administrar derechos para máquinas clientes\n" -"\n" -"Los derechos pueden ser administrados ya sea al registrar un servidor \n" -"de derecho server con un nombre de usuario y contraseña o al importar manualmente los certificados\n" -"\n" -"Un certificado de derechos contiene información incorporada\n" -"tal como el producto que va a ser autorizado, la cantidad y fechas de validez.\n" -"\n" -"Un servidor de derechos administra el número de derechos de cliente disponibles.\n" -"Para marcar estos derechos como usados por el servidor de IPA, se proporciona una cantidad\n" -"y se marca como consumida en el servidor de derechos.\n" -"\n" -" Registrar con un servidor de derechos:\n" -" ipa entitle-register consumer\n" -"\n" -" Importar un certificado de derechos:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" -"\n" -" Mostrar los derechos actuales:\n" -" ipa entitle-status\n" -"\n" -" Recuperar detalles sobre certificados de derechos:\n" -" ipa entitle-get\n" -"\n" -" Consumir algunos derechos del servidor de derechos:\n" -" ipa entitle-consume 50\n" -"\n" -"La ID de registro es un identificador único (UUID). Esta ID será\n" -"IMPORTED if you have used entitle-import.\n" -"\n" -"Cambios a /etc/rhsm/rhsm.conf requieren un reinicio del servicio httpd.\n" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." +msgstr "Establecer un atributo a un par nombre y valor. El formato es attr=value. \nPara los atributos de valor múltiple, el comando sustituye los valores ya presentes." -#: ipalib/plugins/entitle.py:106 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -"\n" -" Suscríbase a nuestro grupo de derechos. Suponga que sólo hay un grupo." -#: ipalib/plugins/entitle.py:129 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -"\n" -" Recuperar nuestra UUID, certificado y la clave de LDAP. \n" -" Salvo en caso de error, la persona que llama es la responsable de la eliminación de archivos \n" -" temporales" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " -msgstr "" -"\n" -" Objeto de derecho" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." +msgstr "Modo continuo: No se detenga en los errores." -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" -msgstr "Autorizaciones" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" +msgstr "Derechos" -#: ipalib/plugins/entitle.py:206 +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 msgid "" -"\n" -" Display current entitlements\n" -" " -msgstr "" -"\n" -" Mostrar derechos actuales" - -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" -msgstr "UUID" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." +msgstr "Mostrar los derechos de acceso de esta entrada (requiere --all). Consulte la página man de IPA para más detalles." -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" -msgstr "Producto" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" +msgstr "Cambiar el nombre de" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" -msgstr "Cantidad" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Cambie el nombre del %(ldap_obj_name)s objeto" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" -msgstr "Consumido" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" +msgstr "la entrada fue eliminada mientras estaba siendo modificada" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -"\n" -" Consumir un derecho" - -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." -msgstr "Derecho(s) consumido(s) %(value)s." -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -"\n" -" Remplácelo para ajustar el valor al número de derechos\n" -" consumidos." -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -"\n" -" Devolver los certificados no es muy interesante. Devuelve el estado de los derechos en su lugar." -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " -msgstr "" -"\n" -" Recuperar el certificado de derechos" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" +msgstr "Miembros que no han podido ser añadidos" -#: ipalib/plugins/entitle.py:394 -msgid "Start" -msgstr "Inicio" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" +msgstr "Cantidad de miembros añadidos" -#: ipalib/plugins/entitle.py:397 -msgid "End" -msgstr "Fin" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" +msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" -msgstr "Número de serie" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" +msgstr "Miembros que no han podido ser eliminados" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" -msgstr "No es un certificado de derechos" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" +msgstr "Cantidad de miembros eliminados" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -"\n" -" Búsqueda de cuentas de derechod." -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -"\n" -" Regístrese al sistema de derechos" - -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." -msgstr "Registrado en el servidor de derechos." -#: ipalib/plugins/entitle.py:483 -msgid "Username" -msgstr "Nombre de usuario" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" +msgstr "Tiempo límite" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" -msgstr "Inscripción UUID" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" +msgstr "Tiempo máximo de búsqueda en segundos" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" -msgstr "Contraseña" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" +msgstr "Tamaño límite" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" -msgstr "Contraseña de registro" +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" +msgstr "Cantidad máxima de entradas obtenidas" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -"\n" -" Importación de un certificado de derechos." -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -"\n" -" Si añadimos la primera entrada no hay actualizaciones por lo tanto, EmptyModlist \n" -" será lanzada. Ignórelo." -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " -msgstr "" -"\n" -" Re-sincronización de la cache de derecho local con el servidor de derechos" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" +msgstr "Agregado" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." -msgstr "Derecho(s) sincronizado(s)." +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" +msgstr "eliminado" + +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" +msgstr "Métodos anidados para ejecutar" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" +"IPA certificate operations\n" "\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" "\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" -msgstr "" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" "\n" -"Grupos de usuarios\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" "\n" -"Administrar grupos de usuarios. Por defecto, nuevos grupos son grupos POSIX. Usted\n" -"puede añadir la opción --nonposix al comando group-add para señalar un nuevo grupo\n" -"como un non-POSIX, y puede usar el mismo argumento para el comando group-mod\n" -"para convertir un grupo non-POSIX a un grupo POSIX. Los grupos POSIX no pueden convertirse\n" -"en grupos non-POSIX.\n" +"In order to request a certificate:\n" "\n" -"Cada grupo debe tener una descripción.\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" "\n" -"Los grupos POSIX deben tener un número ID de grupo (GID). El cambiar un GID está\n" -"soportado pero tiene un impacto en sus permisos de archivos. Es necesario\n" -"proporcionar un GID al crear un grupo. IPA generará uno automáticamente\n" -"si no está provisto.\n" +"EXAMPLES:\n" "\n" -"EJEMPLOS:\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" "\n" -" Añadir un nuevo grupo:\n" -" ipa group-add --desc='local administrators' localadmins\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" "\n" -" Añadir un nuevo grupo non-POSIX:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" "\n" -" Convertir un grupo non-POSIX a posix:\n" -" ipa group-mod --posix remoteadmins\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" "\n" -" Añadir un nuevo grupo POSIX con un número de ID de grupo específico:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" "\n" -" Añadir un nuevo grupo POSIX y permitir que IPA asigne un número de ID de grupo:\n" -" ipa group-add --desc='printer admins' printeradmins\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" "\n" -" Remover un grupo:\n" -" ipa group-del unixadmins\n" +"The following revocation reasons are supported:\n" "\n" -" Añadir el grupo \"remoteadmins\" al grupo \"localadmins\":\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" "\n" -" Añadir una lista de usuarios al grupo \"localadmins\":\n" -" ipa group-add-member --users=test1,test2 localadmins\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" "\n" -" Remover un usuario del grupo \"localadmins\":\n" -" ipa group-remove-member --users=test2 localadmins\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Mostrar información sobre un grupo con nombre.\n" -" ipa group-show localadmins\n" +msgstr "\n\\n\nOperaciones de certificado IPA\\n\n\\n\nEjecuta un conjunto de comandos para administrar los certificados SSL del servidor.\\n\n\\n\nLas solicitudes de certificados existen en la forma de Solicitud de Firma de Certificado (CSR)\\n\nen formato PEM.\\n\n\\n\nSi utiliza el back end de autofirma el asunto en la CSR debe coincidir\\n\ncon el asunto configurado en el servidor. El Certificado dogtag usa justo el valor CN\\n\nde la CSR y fuerza al resto del asunto.\\n\n\\n\nUn certificado se almacena con un principal de servicio y un principal de servicio que el host\\n\nnecesita.\\n\n\\n\nPara solicitar un certificado:\\n\n\\n\n* El host debe existir\\n\n* El servicio debe existir (o use la opción --add para añadirlo automáticamente)\\n\n\\n\nEJEMPLOS:\\n\n\\n\n Solicite un nuevo certificado y añada el principal:\\n\n ipa cert-request --add --principal=HTTP/lion.example.com example.csr\\n\n\\n\n Recupere un certificado existente:\\n\n ipa cert-show 1032\\n\n\\n\n Recupere un certificado (see RFC 5280 for reason details):\\n\n ipa cert-revoke --revocation-reason=6 1032\\n\n\\n\n Retire un certificado del estatus de suspendido:\\n\n ipa cert-remove-hold 1032\\n\n\\n\n Revise el estatus de una solicitud de firma:\\n\n ipa cert-status 10\\n\n\\n\nIPA inmediatamente acepta (o declina) todas las solicitudes de certificado\\n\npor lo tanto, el estatus de una solicitud no suele ser normal. Esto es para el uso futuro o \\n\nel caso en el que un CA no expide inmediatamente un certificado.\\n\n\\n\nLas siguientes razones de revocación están soportadas:\\n\n\\n\n * 0 - no especificado\\n\n * 1 - compromiso de clave\\n\n * 2 - compromiso de cA\\n\n * 3 - afiliación cambiada\\n\n * 4 - sustituida\\n\n * 5 - cese de operación\\n\n * 6 - certificado retenido\\n\n * 8 - retirar de CRL\\n\n * 9 - privilegio negado \\n\n * 10 - Compromiso A\\n\n\\n\nObserve que la razón del código 7 no se utiliza. Consulte RFC 5280 para mayor información:\\n\n\\n\nhttp://www.ietf.org/rfc/rfc5280.txt\\n\n\\n\n" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" +msgstr "Falla al intentar decodificar la petición de identificación de certificado" + +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" +msgstr "Falla al intentar decodificar la petición de identificación de certificado" + +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "Falla al intentar decodificar la petición de identificación de certificado: %s" + +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -"\n" -" Objeto de grupos." -#: ipalib/plugins/group.py:100 -msgid "User Groups" -msgstr "Grupos de usuarios" +#: ipalib/plugins/cert.py:211 +msgid "CSR" +msgstr "CSR" -#: ipalib/plugins/group.py:108 -msgid "Group name" -msgstr "Nombre del grupo" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" +msgstr "Principal" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" -msgstr "Descripción del grupo" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "Principal del servicio para este certificado (p.ej. HTTP/prueba.ejemplo.com)" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" -msgstr "GID" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" +msgstr "si no existe, agregar automáticamente el principal" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" -msgstr "GID (utilice esta opción para definirlo manualmente)" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" +msgstr "Certificado" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " -msgstr "" -"\n" -" Crear un nuevo grupo." +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" +msgstr "Asunto" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" -msgstr "Ha sido agregado el grupo \"%(value)s\"" +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" +msgstr "Emisor" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" -msgstr "Crear como un grupo no POSIX" +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" +msgstr "No antes de" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " -msgstr "" -"\n" -" Borrar grupo." +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" +msgstr "No luego de" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" -msgstr "Ha sido eliminado el grupo \"%(value)s\"" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" +msgstr "Huella digital (MD5)" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " -msgstr "" -"\n" -" Modificar un grupo." +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" +msgstr "Huella digital (SHA1)" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" -msgstr "Ha sido modificado el grupo \"%(value)s\"" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" +msgstr "Número de serie" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" -msgstr "Cambiar a un grupo POSIX" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" +msgstr "Nombre de la variable de mapeo de dicionario a valorizar " -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " -msgstr "" -"\n" -" Buscar grupos." +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." +msgstr "Verificar el estado de una solicitud de firma de certificado." -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "%(count)d grupo coincidente" -msgstr[1] "%(count)d grupos coincidentes" +#: ipalib/plugins/cert.py:404 +msgid "Request id" +msgstr "Id de la petición" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" -msgstr "Búsqueda de grupos privados" +#: ipalib/plugins/cert.py:410 +msgid "Request status" +msgstr "Estado de la petición" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " -msgstr "" -"\n" -" Mostrar información sobre un grupo con nom llamado." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "Número de serie en decimales, o hexadecimales, si tiene un prefijo 0x" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -"\n" -" Añadir miembros a un grupo." -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " -msgstr "" -"\n" -" Eliminar miembros de un grupo." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" +msgstr "Motivo de la revocación" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " -msgstr "" -"\n" -" Separar un grupo administrado de un usuario" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" +msgstr "Nombre de archivo de salida" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" -msgstr "Ha sido desasociado el grupo \"%(value)s\" del usuario \"%(value)s\"" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." +msgstr "Archivo para almacenar el certificado" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" -"\n" -" Se requiere la actualización del usuario y del grupo. Primero tenemos que \n" -" comprobar si el usuario y el grupo pueden ser actualizados, luego, \n" -" nos ocupamos de nuestro trabajo. No queremos una situación en la que solamente el usuario o \n" -" el grupo puede ser modificado y nos dejen en mal estado." +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." +msgstr "Revocar un certificado." -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" -msgstr "no se permite modificar las entradas de los usuarios" +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "Revocado" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" -msgstr "no se permite modificar las entradas de los grupos" +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "Motivo" + +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" +msgstr "Motivo por el cual el certificado ha sido revocado (0-10)" + +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" +msgstr "7 no es una razón válida de revocación" + +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." +msgstr "" + +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" +msgstr "No revocado" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" -msgstr "No es un grupo administrado" +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "Error" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Host-based access control\n" +"Server configuration\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"NOTES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" +"\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" "EXAMPLES:\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -"\n" -"Control de acceso basado en host\n" -"\n" -"Controla quién puede acceder a los servicios en los hosts y desde dónde.\n" -"Puede\n" -"usar HBAC para controlar a los usuarios y grupos en un host de origen puedan acceder a un servicio o grupo de servicios en un host de destino.\n" -"\n" -"Puede especificar una categoría de usuarios, host de destino y hosts de origen. Está actualmente limitada a \"all\", pero se podría expandir en el futuro.\n" -"\n" -"Los hosts de destino y fuente en reglas de HBAC deben ser manejados por IPA.\n" -"\n" -"Los servicios y grupos disponibles están controlados por complementos hbacsvc y hbacsvcgroup respectivamente.\n" -"\n" -"EJEMPLOS:\n" -"\n" -" Crear una regla, \"test1\", que otorgue a todos los usuarios acceso al host \"server\" desde cualquier parte:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" -"\n" -" Mostrar las propiedades de una regla llamada HBAC:\n" -" ipa hbacrule-show test1\n" -"\n" -" Crear una regla para un servicio específico. Esto permite jThis lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" -"\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" -"\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " -msgstr "" -"\n" -" Ver si opciones [atribute] \"all\" en minúscula de una manera segura." +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." +msgstr "searchtimelimit debe ser -1 o> 1." -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " -msgstr "" -"\n" -" Objeto HBAC." +#: ipalib/plugins/config.py:80 +msgid "configuration options" +msgstr "opciones de configuración" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" -msgstr "Regla HBAC" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" +msgstr "Configuración" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" -msgstr "Nombre de la regla" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" +msgstr "Largo máximo para nombre de usuario" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "Tipo de regla (permitir o negar)" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" +msgstr "Base del directorio principal" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" -msgstr "Tipo de regla" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" +msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" -msgstr "Categoría de usuario" +#: ipalib/plugins/config.py:105 +msgid "Default shell" +msgstr "Shell predeterminada" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" -msgstr "Categoría de usuario al que se aplica la regla" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" +msgstr "Shell predeterminada para usuarios nuevos" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" -msgstr "Categoría del equipo" +#: ipalib/plugins/config.py:110 +msgid "Default users group" +msgstr "Grupo de usuarios predeterminado" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" -msgstr "Categoría del equipo al que se aplica la regla" +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" +msgstr "Grupo predeterminado para usuarios nuevos" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" -msgstr "Categoría del equipo de origen" +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" +msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" -msgstr "Categoría del equipo de origen al que se aplica la regla" +#: ipalib/plugins/config.py:120 +msgid "Search time limit" +msgstr "Buscar límite de tiempo" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" -msgstr "Categoría de servicio" +#: ipalib/plugins/config.py:121 +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" -msgstr "Categoría de servicio a la que se aplica la regla" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" +msgstr "Límite del tamaño de la búsqueda" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" -msgstr "Habilitado" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" -msgstr "Usuarios" +#: ipalib/plugins/config.py:132 +msgid "User search fields" +msgstr "Campos de búsqueda de usuario" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "Grupos" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" -msgstr "Equipos" +#: ipalib/plugins/config.py:138 +msgid "" +"A comma-separated list of fields to search in when searching for groups" +msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" -msgstr "Grupos de equipo" +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" +msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" -msgstr "Equipos fuente" +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" +msgstr "Base de certificado de asunto" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" -msgstr "Grupos de origen de host" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" -msgstr "Servicios" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" +msgstr "Grupo predeterminado objectclass" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" -msgstr "Grupos de servicio" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" +msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" +msgstr "Usuario predeterminado objectclasses" + +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -"\n" -" Crear una regla HBAC nueva." -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" -msgstr "Añadida regla HBAC \"%(value)s\"" +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" +msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -"\n" -" Eliminar una regla HBAC." -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "Suprimida regla HBAC \"%(value)s\"" +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" +msgstr "Funciones del complemento de contraseña" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -"\n" -" Modificar una regla HBAC." -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "Modificada regla HBAC \"%(value)s\"" +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." +msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "El grupo no existe" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "atributo \"%s\" no permitido" + +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -"\n" -" Búsqueda de reglas HBAC." -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "%(count)d regla coincidente de HBAC" -msgstr[1] "%(count)d reglas coincidentes de HBAC " +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "Muestra la configuración actual" + +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Display the properties of an HBAC rule.\n" -" " -msgstr "" +"Group to Group Delegation\n" "\n" -" Mostrar las propiedades de una regla de HBAC." - -#: ipalib/plugins/hbacrule.py:286 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Enable an HBAC rule.\n" -" " -msgstr "" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" "\n" -" Habilitar una regla HBAC." +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" +msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "Habilitada regla HBAC \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" +msgstr "Delegación ' %(permission)s ' no encontrado" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" +msgstr "Error al recuperar grupo de miembro %(group)s: %(error)s " + +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -"\n" -" Desactivar una regla HBAC. " -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "\"%(value)s\" regla HBAC desactivada " +#: ipalib/plugins/delegation.py:102 +msgid "delegations" +msgstr "" + +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "" + +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" +msgstr "Delegación" + +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" +msgstr "Nombre de delegación" + +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 +msgid "" +"Comma-separated list of permissions to grant (read, write). Default is " +"write." +msgstr "Lista separada por comas de los permisos a otorgar (lectura, escritura). El valor predeterminado es escritura." + +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" +msgstr "Miembro del grupo de usuarios" + +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" +msgstr "Grupo de usuarios para solicitar a la delegación" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -"\n" -" Añadir un tiempo de acceso a una regla HBAC." -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" -msgstr "Hora de acceso" +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "Delegación añadida \"%(value)s\"" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -"\n" -" Eliminar el tiempo de acceso a la regla HBAC." -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " -msgstr "" -"\n" -" Agregar usuarios y grupos a una regla de HBAC." +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "Delegación eliminada \"%(value)s\"" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -"\n" -" Quitar usuarios y grupos a partir de una regla de HBAC." -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "Delegación modificada \"%(value)s\"" + +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -"\n" -" Agregar host de destino y hostgroups a una regla HBAC" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "%(count)d delegación coincidente" +msgstr[1] "%(count)d delegaciones coincidentes" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -"\n" -" Quitar host de destino y hostgroups de una regla de HBAC." -#: ipalib/plugins/hbacrule.py:479 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " -msgstr "" +"Domain Name System (DNS)\n" "\n" -" Añadir hosts de origen y hostgroups de una norma HBAC." - -#: ipalib/plugins/hbacrule.py:496 -msgid "" +"Manage DNS zone and resource records.\n" "\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " -msgstr "" +"EXAMPLES:\n" "\n" -" Retirar hosts de origen y hostgroups de una regla de HBAC." - -#: ipalib/plugins/hbacrule.py:506 -msgid "" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -" Add services to an HBAC rule.\n" -" " -msgstr "" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -" Añadir servicios a una regla de HBAC." - -#: ipalib/plugins/hbacrule.py:523 -msgid "" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Remove service and service groups from an HBAC rule.\n" -" " -msgstr "" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Eliminar los grupos de servicio y el servicio de una regla de HBAC." - -#: ipalib/plugins/hbacsvc.py:19 -msgid "" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -"HBAC Services\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -"EXAMPLES:\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" "\n" -msgstr "" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -"Servicios de HBAC\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" "\n" -"Los servicios PAM a los que HBAC puede controlar el acceso. El nombre utilizado aquí debe coincidir\n" -"con el nombre del servicio que PAM está evaluando.\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" "\n" -"EJEMPLOS:\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" "\n" -" Añadir un nuevo servicio:\n" -" ipa hbacsvc-add tftp\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" "\n" -" Modificar un servicio de HBAC:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" "\n" -" Buscar servicios para HBAC. Este ejemplo retornará dos resultados, el servicio FTP\n" -" y el servicio recién añadido tftp:\n" -" ipa hbacsvc-find ftp\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" "\n" -" Borrar un servicio de HBAC:\n" -" ipa hbacsvc-del tftp\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" "\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" +msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -"\n" -" Objeto de servicio HBAC." -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" -msgstr "Servicios HBAC" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" +msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "Nombre del servicio" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" +msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" -msgstr "Servicio HBAC" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" +msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" -msgstr "Descripción de servicio HBAC" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" +msgstr "el valor de prioridad debe ser un entero" + +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" +msgstr "el valor de prioridad debe estar entre 0 y 65535" -#: ipalib/plugins/hbacsvc.py:82 +#: ipalib/plugins/dns.py:223 msgid "" -"\n" -" Add a new HBAC service.\n" -" " +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -"\n" -" Agregar un servicio HBAC nuevo." -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" -msgstr "Servicio de HBAC \"%(value)s\" añadido" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" +msgstr "" -#: ipalib/plugins/hbacsvc.py:91 +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "" + +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" +msgstr "" + +#: ipalib/plugins/dns.py:249 msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -"\n" -" Eliminar un servicio existente HBAC." -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "Suprimido el servicio HBAC \"%(value)s\"" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" +msgstr "" -#: ipalib/plugins/hbacsvc.py:100 +#: ipalib/plugins/dns.py:266 msgid "" -"\n" -" Modify an HBAC service.\n" -" " +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -"\n" -" Modificar un servicio HBAC." -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" -msgstr "Servicio modificado HBAC \"%(value)s\"" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" +msgstr "" -#: ipalib/plugins/hbacsvc.py:110 +#: ipalib/plugins/dns.py:309 msgid "" -"\n" -" Search for HBAC services.\n" -" " +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -"\n" -" Búsqueda de servicios HBAC." -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "Servicio HBAC %(count)d coincidente" -msgstr[1] "Servicios HBAC %(count)d coincidentes" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -"\n" -" Mostrar información sobre un servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "el valor de protocolo debe estar entre 0 y 255" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -"\n" -"Grupos de servicio HBAC\n" -"\n" -"Grupos de servicio HBAC pueden contener cualquier número de servicios individuales, o \"miembros\". Cada grupo debe contener una descripción\n" -"\n" -"EJEMPLOS:\n" -"\n" -" Añadir un nuevo grupo de servicio HBAC:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Añadir miembros a un grupo de servicio HBAC:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Mostrar información sobre grupo llamado:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Añadir un nuevo grupo al grupo \"login\":\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Eliminar un grupo de servicio HBAC:\n" -" ipa hbacsvcgroup-del login\n" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "%s debe ser entero" + +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -"\n" -" HBAC servicio objeto de grupo." -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" -msgstr "Grupos de servicios HBAC" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "d1 y d2 deben estar entre 0 y 90" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" -msgstr "Nombre del servicio" +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "m1, m2, s1 y s2 deben estar entre 0 y 59.999" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "alt debe estar entre -100000.00 y 42849672.95" + +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "siz, hp y vp deben estar entre 0 y 90000000.00" + +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -"\n" -" Añadir un nuevo grupo de servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" -msgstr "Agregado servicio de grupo HBAC \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -"\n" -" Eliminar un grupo de servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "Suprimido el servicio HBAC grupo \"%(value)s\"" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -"\n" -" Modificar un grupo de servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "Servicio modificado HBAC grupo \"%(value)s\"" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -"\n" -" Búsqueda de un grupo de servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "%(count)d grupo de servicio HBAC coincidente" -msgstr[1] "%(count)d grupos de servicio HBAC coincidentes" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -"\n" -" Mostrar información sobre un grupo de servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -"\n" -" Añadir miembros a un grupo de servicio HBAC." -#: ipalib/plugins/hbacsvcgroup.py:138 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -"\n" -" Eliminar miembros de un grupo de servicio HBAC." -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -"\n" -"Hosts/Máquinas\n" -"\n" -"Un host representa una máquina. Se puede utilizar en un número de contextos:\n" -"- entradas de servicios están asociadas a un host\n" -"- un host almacena el host o servicio principal\n" -"- Un host puede ser utilizado en reglas de Control de Acceso basado en host (HBAC) \n" -"- Cada cliente inscrito genera una entrada de host\n" -"\n" -"REGISTRO:\n" -"\n" -"Hay tres situaciones de inscripción de nuevo cliente:\n" -"\n" -"1. Se está inscribiendo como un administrador total. La entrada de host puede existir\n" -" o no. Un administrador total es un miembro de un rol hostadmin o de un grupo admins.\n" -"2. Se está inscribiendo como un administrador limitado. El host ya debe existir. Un administrador limitado es un miembro de un rol con un privilegio de inscripción de host.\n" -"3. El host ha sido creado con una contraseña de una sola vez.\n" -"\n" -"Un host solo puede incribirse una vez. Si un cliente se ha inscrito y necesita reincribirse, la entrada de host debe eliminarse y volverse a crear. Observe que\n" -"re-crear la entrada de host hará que todos los servicios de host sean eliminados y todos los certificados SSL asociados a dichos servicios sean revocados.\n" -"\n" -"Opcionalmente, un host puede almacenar información tal como en donde se localiza el sistema operativo que ejecuta, etc.\n" -"\n" -"EJEMPLOS:\n" -"\n" -" Añadir un nuevo host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Borrar un host:\n" -" ipa host-del test.example.com\n" -"\n" -" Añadir un nuevo host con una contraseña de una sola vez:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Añadir un nuevo host con una contraseña aleatoria de una sola vez:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modificar información sobre un host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Inhabilitar la clave de Kerberos, certificado SSL y todos sus servicios:\n" -" ipa host-disable test.example.com\n" -"\n" -" Añadir un host que pueda administrar esta tabla de claves y certificado de host:\n" -" ipa host-add-managedby --hosts=test2 test\n" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -"\n" -" Requieren por lo menos un punto en el nombre de host \n" -" (para apoyar localhost.localdomain)" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" -msgstr "Es necesario un nombre de equipo totalmente certificado" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" +msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" -msgstr "Zona invertida DNS para dirección IP %(addr)s no encontrada" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "El servidor de nombre '%(host)s' no tiene su correspondiente registro A/AAAA" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" -msgstr "Keytab" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" +msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -"\n" -" Comprobar si tenemos ya sea una dirección IPv4 o IPv6." -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" -msgstr "Dirección IP no válida" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" +msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -"\n" -" Objeto de host." -#: ipalib/plugins/host.py:231 -msgid "Host name" -msgstr "Nombre del equipo" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" +msgstr "Nombre de la zona" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" -msgstr "Una descripción de este equipo" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" +msgstr "Nombre de la zona (FQDN)" -#: ipalib/plugins/host.py:242 -msgid "Locality" -msgstr "Localidad" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Localidad del equipo (p.ej. \"Barrio latino, París\") " +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" -msgstr "Ubicación del equipo (p. ej. \"Laboratorio\")" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" +msgstr "Nombre de servidor autoritativo" -#: ipalib/plugins/host.py:252 -msgid "Platform" -msgstr "Plataforma" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" +msgstr "Correo-e de administrador" -#: ipalib/plugins/host.py:257 -msgid "Operating system" -msgstr "Sistema operativo" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" +msgstr "Serie SOA" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Sistema operativo que utiliza el equipo y versión (p.ej. \"Fedora 11\")" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "Número de serie de registro SOA" -#: ipalib/plugins/host.py:262 -msgid "User password" -msgstr "Contraseña de usuario" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" +msgstr "Actualizar SOA" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" -msgstr "Contraseña utilizada en el registro bruto" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" +msgstr "registro SOA tiempo de actualización" + +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" +msgstr "Reintentar SOA" + +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" +msgstr "tiempo de reintento de " + +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" +msgstr "Expirar SOA" + +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" +msgstr "tiempo de expiración de registro SOA" + +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" +msgstr "Mínimo SOA" + +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" +msgstr "¿Por cuánto tiempo las respuestas negativas deben guardarse en cache?" + +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" +msgstr "Tiempo para abandonar SOA" + +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" +msgstr "tiempo de vida de registro SOA" + +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "Clase SOA" + +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" +msgstr "Clase de registro SOA " + +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" +msgstr "Política de actualización de BIND" + +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "Activar zona" + +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" +msgstr "¿Está la zona activa?" + +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" +msgstr "Actualización dinámica" + +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." +msgstr "Permitir actualizaciones dinámicas." + +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" +msgstr "Forzar" + +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." +msgstr "Fuerza la creación de la zona DNS del servidor de nombres no en DNS." + +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" +msgstr "Agregue el servidor de nombres de DNS con esta dirección IP" + +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" +msgstr "DNS no está configurado" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -"Generar una contraseña aleatoria que se utilizará en la inscripción " -#: ipalib/plugins/host.py:271 -msgid "Random password" -msgstr "Contraseña aleatoria" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." +msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" -msgstr "Certificado del servidor codificado con base-64" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." +msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" -msgstr "Nombre principal" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." +msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -"\n" -" Añadir un nuevo host." -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" -msgstr "Ha sido agregado el equipo \"%(value)s\"" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" +msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" -msgstr "Ignorar la detección inversa de DNS" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." +msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" -msgstr "Agregar el host de DNS con esta dirección IP" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" +msgstr "Zona de DNS desactivada \"%(value)s\" " -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" -msgstr "Zona DNS %(zone)s no encontrado" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." +msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" +msgstr "Zona DNS habilitada \" %(value)s \"" + +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" +msgstr "Registro de recursos DNS" + +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -"El host fue añadido, pero la actualización de DNS falló con: %(exc)s" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -"\n" -" Eliminar un anfitrión." -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" -msgstr "Ha sido eliminado el equipo \"%(value)s\"" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" +msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" -msgstr "Eliminar entradas de DNS" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" +msgstr "Nombre de registro" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " -msgstr "" -"\n" -" Modificar la información sobre un host." +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "Tiempo para abandonar" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" -msgstr "Ha sido modificado el equipo \"%(value)s\"" +#: ipalib/plugins/dns.py:944 +msgid "Class" +msgstr "Clase" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" -msgstr "Nombre del prinicpal de Kerberos para este equipo" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" +msgstr "Clase DNS" -#: ipalib/plugins/host.py:618 +#: ipalib/plugins/dns.py:972 +#, python-format msgid "" -"\n" -" Search for hosts.\n" -" " +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" +msgstr "La zona invertida para registro PTR debería ser una sub-zona de uno de los siguientes dominios integramente cualificados: %s" + +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" +msgstr "La zona invertida %s requiere exactamente %d componentes de direcciones IP, %d dados" + +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -"\n" -" Buscar hosts." -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "%(count)d equipo coincidente" -msgstr[1] "%(count)d equipos coincidentes" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "Forzar la creación del registro DNS, aunque su nombre no sea absoluto" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -"\n" -" Mostrar información de host." -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" -msgstr "archivo para almacenar" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" +msgstr "Registro eliminado \"%(value)s\"" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" -msgstr "Certificado almacenado en el archivo '%(file)s'" +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" -#: ipalib/plugins/host.py:684 +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +"Neither --del-all nor options to delete a specific record provided.\n" +"Command help may be consulted for all supported record types." +msgstr "Ni --del-all ni opciones para borrar un registro en concreto ha sido especificado.\nEl comando de ayuda puede ser consultado para ver los tipos de registros soportados." + +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" +msgstr "Eliminar todos los registros asociados" + +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." +msgstr "Ninguna opción para borrar un registro en concreto especificado." + +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" +msgstr "¿Borrar todos?" + +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "Contenidos actuales del registro DNS:\n" + +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -"\n" -" Desactivar la tecla de Kerberos, certificado SSL y todos los servicios de un host." -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" -msgstr "Host desactivado \"%(value)s\"" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" +msgstr "registro %s con valor %s no encontrado " -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -"\n" -" Añadir hosts que pueden manejar esta máquina." -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -"\n" -" Retire los hosts que puede manejar esta máquina." -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." +msgstr "" + +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" +msgstr "Ha sido encontrado '%(value)s'" + +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "Nombre del equipo anfitrión" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" +msgstr "No ha sido encontrado el equipo anfitrión '%(host)s' " + +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" -"\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" +"Entitlements\n" "\n" -"Grupos de hosts.\n" +"Manage entitlements for client machines\n" "\n" -"Administrar grupos de hosts. Es útili para aplicar control a un número de hosts mediante Host-basado en Control de Acceso.\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -"EJEMPLOS:\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Añadir un nuevo grupo de host:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Añadir otro nuevo grupo de host:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Añadir miembros de hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Añadir un hostgroup como miembro de otro\n" -" hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Quitar un host de un hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Mostrar un grupo de host:\n" -" ipa hostgroup-show baltimore\n" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Eliminar un hostgroup:\n" -" ipa hostgroup-del baltimore\n" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" +msgstr "\n\\n\nDerechos\\n\n\\n\nAdministrar derechos para máquinas clientes\\n\n\\n\nLos derechos pueden ser administrados ya sea al registrar un servidor \\n\nde derecho server con un nombre de usuario y contraseña o al importar manualmente los certificados\\n\n\nUn certificado de derechos contiene información incorporada\\n\ntal como el producto que va a ser autorizado, la cantidad y fechas de validez.\\n\n\n\\n\nUn servidor de derechos administra el número de derechos de cliente disponibles.\\n\nPara marcar estos derechos como usados por el servidor de IPA, se proporciona una cantidad\\n\ny se marca como consumida en el servidor de derechos.\\n\n\n\\n\n Registrar con un servidor de derechos:\\n\n ipa entitle-register consumer\\n\n\n\\n\n Importar un certificado de derechos:\\n\n ipa entitle-import /home/user/ipaclient.pem\\n\n\n\\n\n Mostrar los derechos actuales:\\n\n ipa entitle-status\\n\n\n\\n\n Recuperar detalles sobre certificados de derechos:\\n\n ipa entitle-get\\n\n\n\\n\n Consumir algunos derechos del servidor de derechos:\\n\n ipa entitle-consume 50\\n\n\\n\nLa ID de registro es un identificador único (UUID). Esta ID será\\n\nIMPORTED if you have used entitle-import.\\n\n\\n\n\nCambios a /etc/rhsm/rhsm.conf requieren un reinicio del servicio httpd.\\n\n" -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -"\n" -" Objeto de hostgroup." -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "Grupo de equipo" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" +msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "Nombre del grupo de equipo" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" +msgstr "Autorizaciones" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" -msgstr "Una descripción de este grupo de equipo" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" +msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." +msgstr "" + +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" +msgstr "UUID" + +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" +msgstr "Producto" + +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" +msgstr "Cantidad" + +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" +msgstr "Consumido" + +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." +msgstr "" + +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." +msgstr "Derecho(s) consumido(s) %(value)s." + +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." +msgstr "" + +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" +msgstr "Inicio" + +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" +msgstr "Fin" + +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" +msgstr "Número de serie" + +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" +msgstr "No es un certificado de derechos" + +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." +msgstr "" + +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." +msgstr "" + +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." +msgstr "Registrado en el servidor de derechos." + +#: ipalib/plugins/entitle.py:476 +msgid "Username" +msgstr "Nombre de usuario" + +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -"\n" -" Añadir una nueva hostgroup." -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" -msgstr "Ha sido agregado el grupo de equipo \"%(value)s\"" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" +msgstr "Contraseña de registro" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -"\n" -" Eliminar hostgroup." -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Ha sido eliminado el grupo de equipo \"%(value)s\"" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" +msgstr "Inscripción UUID" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -"\n" -" Modificar un hostgroup." -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Ha sido modificado el grupo de equipo \"%(value)s\"" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." +msgstr "Derecho (s) sincronizado(s)." -#: ipalib/plugins/hostgroup.py:124 +#: ipalib/plugins/group.py:26 msgid "" "\n" -" Search for hostgroups.\n" -" " -msgstr "" +"Groups of users\n" "\n" -" Buscar hostgroups." - -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "%(count)d grupo de equipos coincidente" -msgstr[1] "%(count)d grupos de equipos coincidentes" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" "\n" -" Display information about a hostgroup.\n" -" " -msgstr "" +"Every group must have a description.\n" "\n" -" Mostrar información sobre un hostgroup." - -#: ipalib/plugins/hostgroup.py:144 -msgid "" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" "\n" -" Add members to a hostgroup.\n" -" " -msgstr "" +"EXAMPLES:\n" "\n" -" Agregar miembros a un hostgroup." - -#: ipalib/plugins/hostgroup.py:152 -msgid "" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" "\n" -" Remove members from a hostgroup.\n" -" " -msgstr "" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" "\n" -" Eliminar miembros de un hostgroup." - -#: ipalib/plugins/internal.py:22 -msgid "" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" "\n" -"Plugins not accessible directly through the CLI, commands used internally\n" -msgstr "" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" "\n" -"Complementos no se pueden acceder directamente a través de la CLI, los comandos usados internamente\n" - -#: ipalib/plugins/internal.py:36 -msgid "" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" "\n" -" Export plugin meta-data for the webUI.\n" -" " -msgstr "" +" Remove a group:\n" +" ipa group-del unixadmins\n" "\n" -" Exportar complemento de meta-datos para la WebUI." - -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" -msgstr "Nombre del objeto a exportar" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" +msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" -msgstr "Nombre del método para exportación" +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "grupo" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "El dict de JSON ha codificado objetos IPA" +#: ipalib/plugins/group.py:81 +msgid "groups" +msgstr "grupos" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "Métodos IPA codificados de Dict de JSON " +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" +msgstr "Grupos de usuarios" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "Registrado como" +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "Atributo" +#: ipalib/plugins/group.py:109 +msgid "Group name" +msgstr "Nombre del grupo" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "Agregar ubicación de montaje automático" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" +msgstr "Descripción del grupo" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "Configuración de ubicación de automount" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" +msgstr "GID" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "Añadir mapa de automontaje" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" +msgstr "GID (utilice esta opción para definirlo manualmente)" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "Añadir Clave de Automontaje" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." +msgstr "Crear un grupo nuevo." -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "No especificada" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "Ha sido agregado el grupo \"%(value)s\"" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" -msgstr "Clave de transacción" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" +msgstr " Crear como un grupo no POSIX" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" -msgstr "CA de transacción" +#: ipalib/plugins/group.py:153 +msgid "Delete group." +msgstr "Eliminar grupo." -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" -msgstr "Afiliación cambiada" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "Ha sido eliminado el grupo \"%(value)s\"" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "Obsoleta" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." +msgstr "Modificar un grupo." -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" -msgstr "Cese de operaciones" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Ha sido modificado el grupo \"%(value)s\"" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" -msgstr "Certificado retenido" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" +msgstr "Cambiar a un grupo POSIX" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" -msgstr "Borrar de CRL" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." +msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" -msgstr "Retirada de privilegios" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "%(count)d grupo coincidente" +msgstr[1] "%(count)d grupos coincidentes" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" -msgstr "AA transacción" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" +msgstr "Búsqueda de grupos privados" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -"Para confirmar su intención de revocar el certificado, seleccione una " -"razón de la lista desplegable y haga clic en el botón \"Revocar\"." -#: ipalib/plugins/internal.py:124 -msgid "Note" -msgstr "Nota" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." +msgstr "Agregar miembro a un grupo." -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" -msgstr "Motivo de la revocación" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." +msgstr "Eliminar miembro desde un grupo." -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -"Para confirmar su intención de restaurar este certificado, haga clic en el " -"botón \"Restaurar\"." -#: ipalib/plugins/internal.py:128 -msgid "Issued To" -msgstr "Expedido para" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +msgstr "Ha sido desasociado el grupo \"%(value)s\" del usuario \"%(value)s\"" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" -msgstr "Nombre común" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" +msgstr "no se permite modificar las entradas de los usuarios" -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "Organización" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" +msgstr "no se permite modificar las entradas de los grupos" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" -msgstr "Unidad organizativa" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" +msgstr "No es un grupo administrado" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" -msgstr "Expedido por" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" +msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "Validez" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" +msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" -msgstr "Emisor" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" -msgstr "Expira el" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" -msgstr "Las huellas dactilares" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "Huella digital SHA1" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" +msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" -msgstr "Huella digital de MD5" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" +msgstr "REgla HBAC" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" -msgstr "Ingrese la CRS con codificación Base64 abajo" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" +msgstr "Nombre de la regla" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" -msgstr "Presentar certificado válido" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" -msgstr "Un nuevo certificado" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" +msgstr "Tipo de regla" + +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" +msgstr "Categoría de usuario" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" -msgstr "Certificado revocado" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" +msgstr "Categoría de usuario al que se aplica la regla" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" -msgstr "Certificado no válido" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" +msgstr "Categoría del equipo" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" -msgstr "Certificado para ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" +msgstr "Categoría del equipo al que se aplica la regla" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" -msgstr "Nuevo número de certificados de ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" +msgstr "Categoría del equipo de origen" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" -msgstr "Revocar certificado por ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" +msgstr "Categoría del equipo de origen al que se aplica la regla" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" -msgstr "Restaurar Certificado para ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" +msgstr " Añadir servicios a una regla de HBAC" -#: ipalib/plugins/internal.py:152 -msgid "Name" -msgstr "Nombre" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" +msgstr "Categoría de servicio a la que se aplica la regla" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" -msgstr "Añadir Delegación" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" +msgstr "Habilitado" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" -msgstr "Añadir zona DNS" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" +msgstr "Usuarios" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" -msgstr "Configuración de la Zona DNS" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" +msgstr "Equipos" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" -msgstr "Añadir registro DNS de recursos" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" +msgstr "Grupos de equipo" -#: ipalib/plugins/internal.py:163 -msgid "Resource" -msgstr "Recursos" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" +msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "Datos" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" +msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" -msgstr "Los registros para la zona DNS" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" +msgstr "Sevicios HBAC" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" -msgstr "Añadir Grupo" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" +msgstr " Búsqueda de servicios HBAC." -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" -msgstr "Configuración del grupo" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" -msgstr "¿Es esto un grupo POSIX?" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "Añadida regla HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" -msgstr "Añadir regla HBAC" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" -msgstr "Activo" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Suprimida regla HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" -msgstr "Permitir" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" -msgstr "Negar" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "Modificada regla HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" -msgstr "Inactivos" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." +msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" -msgstr "Estatus de reglas" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "%(count)d regla coincidente de HBAC" +msgstr[1] "%(count)d reglas coincidentes de HBAC " -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" -msgstr "¿Quién?" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" -msgstr "Cualquiera" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" -msgstr "Usuarios y grupos específicos" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "Habilitada regla HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" -msgstr "Acceso" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" -msgstr "Cualquier host" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "\"%(value)s\" regla HBAC desactivada " -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" -msgstr "Hosts y grupos especificados" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" +msgstr "Hora de acceso" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" -msgstr "Vía de servicio" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" -msgstr "Cualquier servicio" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" -msgstr "Servicios y grupos especificados" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" -msgstr "Desde" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" -msgstr "Añadir Servicio HBAC" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "Añadir Grupo de Servicio HBAC" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" -msgstr "Añadir Host" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" -msgstr "Certificado de host" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." +msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" -msgstr "Nombre de host" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" +msgstr "\nServicios de HBAC\n\nLos servicios PAM a los que HBAC puede controlar el acceso. El nombre utilizado aquí debe coincidir\ncon el nombre del servicio que PAM está evaluando.\n\nEJEMPLOS:\n\n Añadir un nuevo servicio:\n ipa hbacsvc-add tftp\n\n Modificar un servicio de HBAC:\n ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n\n Buscar servicios para HBAC. Este ejemplo retornará dos resultados, el servicio FTP\n y el servicio recién añadido tftp:\n ipa hbacsvc-find ftp\n\n Borrar un servicio de HBAC:\n ipa hbacsvc-del tftp\n\n" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "Configuración del host" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" +msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" -msgstr "¿Inscrito?" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "Servicio HBAC" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "Inscripción" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" +msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" -msgstr "Nombre de host totalmente calificado" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" +msgstr "Servicios HBAC" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" -msgstr "Estatus" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" +msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" -msgstr "Claves de Kerberos presente, Host aprovisionado" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "% (Count) d HBAC servicios encontrados" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" -msgstr "La eliminación de clave, unprovision" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" +msgstr "Descripción de servicio HBAC" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" -msgstr "No hay clave Kerberos Presente" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." +msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" -msgstr "Inscríbase a través de una contraseña de una sola vez-contraseña" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "Servicio de HBAC \"%(value)s\" añadido" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" -msgstr "Establecer OTP" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." +msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." -msgstr "Se ha establecido contraseña de una sola vez." +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "Suprimido el servicio HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" -msgstr "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." +msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" -msgstr "¿Está seguro que desea unprovision este equipo?" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr " Servicio modificado HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" -msgstr "Unprovision" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." +msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" -msgstr "Añadir Grupo de Host" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "Servicio HBAC %(count)d coincidente" +msgstr[1] "Servicios HBAC %(count)d coincidentes" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" -msgstr "Configuraciones del Grupo de Host" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." +msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" -msgstr "Política de vale de Kerberos" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" +msgstr "\nGrupos de servicio HBAC\n\nGrupos de servicio HBAC pueden contener cualquier número de servicios individuales, o \"miembros\". Cada grupo debe contener una descripción\n\nEJEMPLOS:\n\n Añadir un nuevo grupo de servicio HBAC:\n ipa hbacsvcgroup-add --desc=\"login services\" login\n\n Añadir miembros a un grupo de servicio HBAC:\n ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n\n Mostrar información sobre grupo llamado:\n ipa hbacsvcgroup-show login\n\n Añadir un nuevo grupo al grupo \"login\":\n ipa hbacsvcgroup-add --desc=\"switch users\" login\n ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n\n Eliminar un grupo de servicio HBAC:\n ipa hbacsvcgroup-del login\n" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" -msgstr "Añadir Netgroup" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" -msgstr "Configuración de Netgroup" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" +msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" -msgstr "Añadir permiso" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" +msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" -msgstr "Identidad" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" +msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" -msgstr "Meta" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" +msgstr " Desactivar la tecla de Kerberos, certificado SSL y todos los servicios de un host." -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" -msgstr "Por subárbol" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" +msgstr "Servicios y grupos especificados" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" -msgstr "Grupo Objetivo" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" -msgstr "Por tipo de objetos" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "Agregado servicio de grupo HBAC \"%(value)s\"" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" -msgstr "Permiso con especificación de destino inválida" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "Añadir Privilegio" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr " Suprimido el servicio HBAC grupo \"%(value)s\"" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" -msgstr "Configuración de privilegios" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" -msgstr "Añadir Directiva de contraseñas" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "Servicio modificado HBAC grupo \"%(value)s\"" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" -msgstr "Directiva de contraseñas" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "Añadir rol" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "%(count)d grupo de servicio HBAC coincidente" +msgstr[1] "%(count)d grupos de servicio HBAC coincidentes" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" -msgstr "Configuración de rol" +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" -msgstr "Agregar definición de autoservicio" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" -msgstr "Añadir Servicio" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" -msgstr "Certificado de servicio" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "Nombre de usuario" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" -msgstr "Configuración del servicio" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" -msgstr "Aprovisionamiento" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "" -#: ipalib/plugins/internal.py:261 +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 msgid "Service" msgstr "Servicio" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" -msgstr "Claves de Kerberos actuales, Servicio suministrado" - -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" -msgstr "¿Está seguro de que desea no suministrar este servicio?" - -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" -msgstr "Añadir comando Sudo" - -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" -msgstr "Añadir Grupo de Comando Sudo" - -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" -msgstr "Comandos" - -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" -msgstr "Añadir regla Sudo" - -#: ipalib/plugins/internal.py:287 -msgid "Access this host" -msgstr "Acceder a este host" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" -msgstr "Ejecutar comandos" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" -msgstr "Cualquier comando" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" +msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" -msgstr "Comandos especificados y grupos" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" +msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" -msgstr "Como Whom" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" +msgstr "Eliminar miembro desde un grupo." -#: ipalib/plugins/internal.py:294 -msgid "Any Group" -msgstr "Cualquier grupo" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" +msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "Grupos especificados" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" +msgstr "\nHosts/Máquinas\n\nUn host representa una máquina. Se puede utilizar en un número de contextos:\n- entradas de servicios están asociadas a un host\n- un host almacena el host o servicio principal\n- Un host puede ser utilizado en reglas de Control de Acceso basado en host (HBAC) \n- Cada cliente inscrito genera una entrada de host\n\nREGISTRO:\n\nHay tres situaciones de inscripción de nuevo cliente:\n\n1. Se está inscribiendo como un administrador total. La entrada de host puede existir\n o no. Un administrador total es un miembro de un rol hostadmin o de un grupo admins.\n2. Se está inscribiendo como un administrador limitado. El host ya debe existir. Un administrador limitado es un miembro de un rol con un privilegio de inscripción de host.\n3. El host ha sido creado con una contraseña de una sola vez.\n\nUn host solo puede incribirse una vez. Si un cliente se ha inscrito y necesita reincribirse, la entrada de host debe eliminarse y volverse a crear. Observe que\nre-crear la entrada de host hará que todos los servicios de host sean eliminados y todos los certificados SSL asociados a dichos servicios sean revocados.\n\nOpcionalmente, un host puede almacenar información tal como en donde se localiza el sistema operativo que ejecuta, etc.\n\nEJEMPLOS:\n\n Añadir un nuevo host:\n ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n\n Borrar un host:\n ipa host-del test.example.com\n\n Añadir un nuevo host con una contraseña de una sola vez:\n ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n\n Añadir un nuevo host con una contraseña aleatoria de una sola vez:\n ipa host-add --os='Fedora 12' --random test.example.com\n\n Modificar información sobre un host:\n ipa host-mod --os='Fedora 12' test.example.com\n\n Inhabilitar la clave de Kerberos, certificado SSL y todos sus servicios:\n ipa host-disable test.example.com\n\n Añadir un host que pueda administrar esta tabla de claves y certificado de host:\n ipa host-add-managedby --hosts=test2 test\n" -#: ipalib/plugins/internal.py:297 -msgid "External" -msgstr "Externos" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" +msgstr "Es necesario un nombre de equipo totalmente certificado" -#: ipalib/plugins/internal.py:300 -msgid "Add User" -msgstr "Agregar usuario" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" +msgstr "Zona invertida DNS para dirección IP %(addr)s no encontrada" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" -msgstr "Configuración de la cuenta" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" +msgstr "Keytab" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" -msgstr "Configuración de contactos" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" +msgstr "Dirección IP no válida" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "Dirección de correo" +#: ipalib/plugins/host.py:216 +msgid "host" +msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" -msgstr "Información del Empleado" +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" -msgstr "Información diversa" +#: ipalib/plugins/host.py:249 +msgid "Host" +msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" -msgstr "Haga clic para desactivar" +#: ipalib/plugins/host.py:257 +msgid "Host name" +msgstr "Nombre del equipo" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" -msgstr "Haga clic para activar" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" +msgstr "Una descripción de este equipo" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" -msgstr "Error al cambiar el estado de cuenta" +#: ipalib/plugins/host.py:268 +msgid "Locality" +msgstr "Localidad" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "Restablecer contraseña" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Localidad del equipo (p.ej. \"Barrio latino, París\") " -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "Nueva Contraseña" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Ubicación del equipo (p. ej. \"Laboratorio\")" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" -msgstr "Repita la contraseña" +#: ipalib/plugins/host.py:278 +msgid "Platform" +msgstr "Plataforma" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" -msgstr "Cambiar la contraseña completa" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" -msgstr "Las contraseñas deben coincidir" +#: ipalib/plugins/host.py:283 +msgid "Operating system" +msgstr "Sistema operativo" -#: ipalib/plugins/internal.py:319 -msgid "Add" -msgstr "Agregar" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Sistema operativo que utiliza el equipo y versión (p.ej. \"Fedora 11\")" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" -msgstr "Agregar y agregar otro" +#: ipalib/plugins/host.py:288 +msgid "User password" +msgstr "Contraseña de usuario" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "Agregar y Editar" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" +msgstr "Contraseña utilizada en el registro bruto" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" -msgstr "Añadir y cerrar" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" +msgstr "Generar una contraseña aleatoria que se utilizará en la inscripción " -#: ipalib/plugins/internal.py:323 -msgid "Add Many" -msgstr "Añadir Muchos" +#: ipalib/plugins/host.py:297 +msgid "Random password" +msgstr "Contraseña aleatoria" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "Volver a la lista" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" +msgstr "Certificado del servidor codificado con base-64" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" -msgstr "Cancelar" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" +msgstr "Nombre principal" -#: ipalib/plugins/internal.py:326 -msgid "Close" -msgstr "Cerrar" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." +msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" -msgstr "Registro" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Ha sido agregado el equipo \"%(value)s\"" -#: ipalib/plugins/internal.py:328 -msgid "Find" -msgstr "Buscar" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" +msgstr "fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS" -#: ipalib/plugins/internal.py:329 -msgid "Get" -msgstr "Obtener" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" +msgstr "Ignorar la detección inversa de DNS" -#: ipalib/plugins/internal.py:330 -msgid "Issue" -msgstr "Tema" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" +msgstr "Agregar el host de DNS con esta dirección IP" -#: ipalib/plugins/internal.py:331 -msgid "OK" -msgstr "Aceptar" +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" -msgstr "Resetear" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" +msgstr "Zona DNS %(zone)s no encontrado" -#: ipalib/plugins/internal.py:333 -msgid "Delete" -msgstr "Eliminar" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" +msgstr "El host fue añadido, pero la actualización de DNS falló con:%(exc)s" -#: ipalib/plugins/internal.py:334 -msgid "Restore" -msgstr "Restaurar" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." +msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" -msgstr "Reintentar" +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Ha sido eliminado el equipo \"%(value)s\"" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" -msgstr "Revocar" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" +msgstr "Eliminar entradas de DNS" -#: ipalib/plugins/internal.py:337 -msgid "Update" -msgstr "Actualizar" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." +msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" -msgstr "Ver" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Ha sido modificado el equipo \"%(value)s\"" -#: ipalib/plugins/internal.py:341 -msgid "Available" -msgstr "Disponible" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" +msgstr "Nombre del prinicpal de Kerberos para este equipo" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -"Esta página tiene cambios sin guardar. Por favor, guardar o deshacer." -#: ipalib/plugins/internal.py:343 -msgid "Dirty" -msgstr "Sucio" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." +msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." -msgstr "Ocultar ya inscrito." +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "%(count)d equipo coincidente" +msgstr[1] "%(count)d equipos coincidentes" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." -msgstr "Seleccione ${entity} para ser eliminado." +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." +msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." -msgstr "Retirar ${entity}.." +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" +msgstr "archivo para almacenar" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" -msgstr "Prospectivo" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" +msgstr "Certificado almacenado en el archivo '%(file)s'" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" -msgstr "Administrado por" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "" + +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" +msgstr "Host desactivado \"%(value)s\"" -#: ipalib/plugins/internal.py:351 -msgid "Member" -msgstr "Miembro" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." +msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" -msgstr "Miembro indirecto" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." +msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" -msgstr "Miembro de" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" +msgstr "\nGrupos de hosts.\n\nAdministrar grupos de hosts. Es útili para aplicar control a un número de hosts mediante Host-basado en Control de Acceso.\n\nEJEMPLOS:\n\n Añadir un nuevo grupo de host:\n ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n\n Añadir otro nuevo grupo de host:\n ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n\n Añadir miembros de hostgroup:\n ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n\n Añadir un hostgroup como miembro de otro\n hostgroup:\n ipa hostgroup-add-member --hostgroups=baltimore maryland\n\n Quitar un host de un hostgroup:\n ipa hostgroup-remove-member --hosts=box2 baltimore\n\n Mostrar un grupo de host:\n ipa hostgroup-show baltimore\n\n Eliminar un hostgroup:\n ipa hostgroup-del baltimore\n" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" -msgstr "Miembro indirecto de" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" +msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" -msgstr "Configuración" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" +msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" -msgstr "Búsqueda" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" +msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" -msgstr "Enlaces rápidos" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" +msgstr "Grupo de equipo" -#: ipalib/plugins/internal.py:363 -msgid "Select All" -msgstr "Seleccionar todo" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" +msgstr "Nombre del grupo de equipo" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" -msgstr "Anular selección" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" +msgstr "Una descripción de este grupo de equipo" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" -msgstr "¿Está seguro que desea eliminar las entradas seleccionadas?" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." +msgstr "" -#: ipalib/plugins/internal.py:366 +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Ha sido agregado el grupo de equipo \"%(value)s\"" + +#: ipalib/plugins/hostgroup.py:131 +#, python-format msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -"La solicitud devolvió más resultados que el límite de tamaño " -"configurado. Mostrando los primeros resultados ${counter}." - -#: ipalib/plugins/internal.py:370 -msgid "General" -msgstr "General" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" -msgstr "Configuración de identidad" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." +msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" -msgstr "Configuraciones de ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Ha sido eliminado el grupo de equipo \"%(value)s\"" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" -msgstr "Volver al comienzo" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." +msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" -msgstr "Política" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Ha sido modificado el grupo de equipo \"%(value)s\"" -#: ipalib/plugins/internal.py:378 -msgid "Audit" -msgstr "Auditoría" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." +msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" -msgstr "Servidor IPA" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "%(count)d grupo de equipos coincidente" +msgstr[1] "%(count)d grupos de equipos coincidentes" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" -msgstr "Sudo" +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." +msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" -msgstr "Control de Acceso basado en Host" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." +msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" -msgstr "Control de acceso basado en rol" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." +msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" -msgstr "Montaje automático" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" +msgstr "Nombre del objeto a exportar" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" -msgstr "Añadir ${other_entity} a ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" +msgstr "Nombre del método para exportación" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" -msgstr "${other_entity} inscrita en ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" -msgstr "${entity} ${primary_key} está incrita en la siguiente ${other_entity}" +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "El dict de JSON ha codificado objetos IPA" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" -msgstr "Retirar ${other_entity} de ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "Métodos IPA codificados de Dict de JSON " -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" -msgstr "El texto no coincide con el patrón de campo" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI
follow these directions to " "configure your browser." +msgstr "Su tiquetes de Kerberos ya no es válido. Por favor, ejecute kinit y, a continuación haga clic en 'Reintentar'. Si es la primera vez que ejecuta la API de interfaz de usuario Web siga estas instrucciones para configurar su navegador." + +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -"Su tiquetes de Kerberos ya no es válido. Por favor, ejecute kinit y, a " -"continuación haga clic en 'Reintentar'. Si es la primera vez que ejecuta " -"la IPA de interfaz de usuario Web " -"siga estas instrucciones para " -"configurar su navegador." -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" -msgstr "Dictado de los mensajes regionales" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" +msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" +msgstr "Añadir ${other_entity} a ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" +msgstr "" + +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -"\n" -"Complemento de segundo plano de kerberos\n" -"\n" -"Envuele el kerberos de python y los vínculos de python-krbV\n" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -"\n" -" Complemento de segundo plano de Kerberos.\n" -"\n" -" Abarca los vínculos de `krbV` (y, eventualmente, ajustará el vínculo de `kerberos`). Es importante destacar que este complemento tiene valores de\n" -" codificación y decodificación de Unicode correctos\n" -" de valores de salida y entrada de los enlaces." -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -"\n" -" Vuelva a colocar la ``krbV.CCache`` para la cache de credenciales predeterminada.\n" -" " -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -"\n" -" Vuelva a colocar el ``krb5.Principal``para la cache de credenciales predeterminada." -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -"\n" -" Vuelva a colocar el ``krbV.CCache`` para la credencial de ccache``ccname``.\n" -" " -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -"\n" -" Vuelva a colocar el ``krb5.Principal`` para la \n" -"\n" -" credencial de ccache ``ccname``.\n" -" " -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -"\n" -" Vuelva a colocar el nombre de archivo por defecto ccache. \n" -"\n" -" Esto devolverá algo así como '/tmp/krb5cc_500'. \n" -"\n" -" No puede devolver algo significativo si se utiliza en el servidor \n" -" cuando se procesa una solicitud." -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -"\n" -" Vuelva a colocar el nombre principal en la cache de credenciales predeterminada. \n" -"\n" -" Devolverá algo así como 'admin@EXAMPLE.COM'. Si no existe cache\n" -" de credenciales para el usuario que llama, devuelve None.\n" -"\n" -" No puede devolver algo significativo si se utiliza en el servidor\n" -" cuando se procesa una solicitud.\n" -" " -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" +msgstr "Retirar ${other_entity} de ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -"\n" -" Devuelva el ámbito de la cache de credenciales predeterminada. \n" -"\n" -" Devolverá algo así como 'EXAMPLE.COM'. Si no existe cache de\n" -" credenciales para el usuario que llama, devuelve None.\n" -"\n" -" No puede volver nada significativo si se utiliza \n" -" en el servidor cuando se procesa una solicitud.\n" -" " -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -"\n" -" Volver al principal del archivo de cache en ``ccname ``.\n" -"\n" -" Devolverá algo así como 'admin@EXAMPLE.COM'." -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -"\n" -" Devolver el reino a partir del archivo de cache en ``ccname``. \n" -"\n" -" Devolverá algo así como 'EXAMPLE.COM.\n" -" " -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -"\n" -" Objeto de política de vale de kerberos" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" -msgstr "Política de tiquete de Kerberos" +#: ipalib/plugins/internal.py:179 +msgid "Add" +msgstr "Agregar" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" -msgstr "Nombre de usuario" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" +msgstr "Agregar y agregar otro" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" -msgstr "Administra política de ticket para un usuario específico" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" +msgstr "Añadir y cerrar" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" -msgstr "Vida máxima" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" +msgstr "Agregar y Editar" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" -msgstr "Duración máxima del ticket (en segundos)" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" +msgstr "Añadir Muchos" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" -msgstr "Renovación máxima" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" +msgstr "Cancelar" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" -msgstr "Duración máxima renovable (en segundos)" +#: ipalib/plugins/internal.py:185 +msgid "Close" +msgstr "Cerrar" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " -msgstr "" -"\n" -" Modificar la política de vale de Kerberos." +#: ipalib/plugins/internal.py:186 +msgid "Find" +msgstr "Buscar" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:187 +msgid "Get" +msgstr "Obtener" + +#: ipalib/plugins/internal.py:188 +msgid "Issue" +msgstr "Tema" + +#: ipalib/plugins/internal.py:189 +msgid "OK" +msgstr "Aceptar" + +#: ipalib/plugins/internal.py:190 +msgid "Delete" +msgstr "Eliminar" + +#: ipalib/plugins/internal.py:191 +msgid "Reset" +msgstr "Resetear" + +#: ipalib/plugins/internal.py:192 +msgid "Restore" +msgstr "Restaurar" + +#: ipalib/plugins/internal.py:193 +msgid "Retry" +msgstr "Reintentar" + +#: ipalib/plugins/internal.py:194 +msgid "Revoke" +msgstr "Revocar" + +#: ipalib/plugins/internal.py:195 +msgid "Update" +msgstr "Actualizar" + +#: ipalib/plugins/internal.py:196 +msgid "View" +msgstr "Ver" + +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -"\n" -" Mostrar el vale actual de política de Kerberos " -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -"\n" -" Restablecer la directiva de vale de Kerberos a los valores predeterminados." -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:201 +msgid "General" +msgstr "General" + +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" +msgstr "Configuración de identidad" + +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" +msgstr "Configuraciones de ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" +msgstr "Volver al comienzo" + +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -"El principal %s de Kerberos ya existe. Utilice 'ipa user-mod' para definirlo" -" manualmente." -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:209 +msgid "Available" +msgstr "Disponible" + +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -"Falló al intenatar agregar al usuario al grupo predeterminado. Utilice 'ipa " -"group-add-member' para agregarlo manualmente. " -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -"\n" -" Convertir los nombres de usuario en los atributos de miembros para trabajar en IPA." -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." -msgstr "URI LDAP no válida." +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" +msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." +msgstr "Esta página tiene cambios sin guardar. Por favor, guardar o deshacer." + +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -"\n" -" Migración de usuarios y grupos de DS para la IPA." -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "LDAP URI" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" +msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" -msgstr "LDAP URI del servidor DS desde donde realizar la migración" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" +msgstr "Prospectivo" -#: ipalib/plugins/migration.py:272 -msgid "bind password" -msgstr "asociar contraseña" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" +msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" -msgstr "Asociar DN" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." +msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" -msgstr "Contenedor de usuario" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" +msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" -msgstr "RDN de contenedor para los usuarios en DS" +#: ipalib/plugins/internal.py:220 +msgid "Show details" +msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" -msgstr "Contenedor de grupoi" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" +msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" -msgstr "RDN del contenedor para grups en DS" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." +msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" -msgstr "Clase de objeto de usuario" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" +msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -"Lista separada por comas de clases de objetos utilizados para buscar las " -"entradas de usuario en DS" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" -msgstr "Clase de objeto de grupo" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" +msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -"Lista separada por comas de clases de objetos utilizados para la búsqueda " -"de entradas de grupo en DS" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" -msgstr "Esquema LDAP" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" +msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -"El esquema utilizado en el servidor LDAP. Los valores admitidos son RFC2307 " -"y RFC2307bis. El valor predeterminado es RFC2307bis" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -"Modo de funcionamiento continuo. Se reportan errores, pero el proceso " -"continúa" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." -msgstr "Lista de objetos migrados; clasificados por tipo." +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" +msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "Lista de objetos que no pueden ser migrados; categorizados por tipo." +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" +msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." -msgstr "\"False\", si el modo de migración fue inhabilitado." +#: ipalib/plugins/internal.py:239 +msgid "Settings" +msgstr "Configuración" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" -msgstr "lista de %s separada por comas a ser excluida de la migración" +#: ipalib/plugins/internal.py:240 +msgid "Search" +msgstr "Búsqueda" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -"los resultados de la búsqueda de los objetos que se van a migrar se han " -"truncado por el servidor; el proceso de migración puede estar incompleto\n" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." -msgstr "" -"El modo de migración se encuentra inhabilitado. Utilice 'ipa config-mod' " -"para habilitarlo." +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" +msgstr "Registrado como" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." -msgstr "" -"Las contraseñas han sido migradas en formato pre-hashed.\n" -"IPA es incapaz de generar claves de Kerberos a menos que le sean\n" -"provistas contraseñas de texto claras. Todos los usuarios migrados\n" -"necesitan registrarse en https://your.domain/ipa/migration/ antes de\n" -"poder utilizar sus respectivas cuentas Kerberos." +#: ipalib/plugins/internal.py:248 +msgid "Attribute" +msgstr "Atributo" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" +msgstr "Configuración de ubicación de automount" + +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -"\n" -" Llamar a get_options de baseclass y añadir opciones de \"exclude\"\n" -" para cada tipo de objeto que se está migrando." -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -"\n" -" Convertir todos los valores de opciones \"exclude\" a minúsculas. \n" -" Además, la lista de parámetros vacía se convierte en None, pero al complemento de migración no le \n" -" gusta - convertir de nuevo a listas vacías." -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -"\n" -" Migrar objetos de DS para LDAP." -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" -msgstr "No se encuentra contenedor para %(container)s " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" +msgstr "AA transacción" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" -msgstr "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "Afiliación cambiada" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" -msgstr "Mostrar variables del entorno" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "CA de transacción" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d variables" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "Certificado retenido" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "Cese de operaciones" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "Nombre común" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "Ingrese la CRS con codificación Base64 abajo" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "Expira el" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "Las huellas dactilares" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "Nuevo número de certificados de " + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "Expedido por" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "Expiración" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "Expedido para" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "Clave de transacción" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "Huella digital de MD5" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "Certificado no válido" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "Un nuevo certificado" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "Nota" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" +msgstr "Organización" + +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "Unidad organizativa" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "Retirada de privilegios" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "Motivo de la revocación" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "Borrar de CRL" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "Restaurar Certificado para " + +#: ipalib/plugins/internal.py:285 msgid "" -"retrieve and print all attributes from the server. Affects command output." -msgstr "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." +msgstr "Para confirmar su intención de restaurar este certificado, haga clic en el botón \"Restaurar\"." -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" -msgstr "Cantidad total de variables env (>= count)" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "Revocar certificado por ${entity} ${primary_key" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" -msgstr "Cantidad de variables devueltas (<= total)" +#: ipalib/plugins/internal.py:287 +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "Para confirmar su intención de revocar el certificado, seleccione una razón de la lista desplegable y haga clic en el botón \"Revocar\"." -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" -msgstr "Mostrar todos los complementos cargados" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "Certificado revocado" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "%(count)d complemento cargado" -msgstr[1] "%(count)d complementos cargados" +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "Huella digital SHA1" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "Obsoleta" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "No especificada" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "Presentar certificado válido" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "Validez" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" -msgstr "Cantidad de complementos cargados" +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "Certificado para ${entity} ${primary_key" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -"\n" -"Grupos de Red\n" -"Un grupo de red es un grupo usado para comprobación de permisos. Puede contener valores tanto del usuario como del host.\n" -"EJEMPLOS:\n" -"\n" -" Añadir un nuevo grupo de red:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Añadir miembros al grupo de red:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Eliminar miembro del grupo de red:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Mostrar información sobre el grupo de red:\n" -" ipa netgroup-show admins\n" -"\n" -" Borrar un grupo de red:\n" -" ipa netgroup-del admins\n" - -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" -msgstr "Miembro del equipo anfitrión" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -"\n" -" objeto netgroup." -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" -msgstr "Grupos de red" +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" -msgstr "Nombre de grupo de red" +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "Datos" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" -msgstr "Descripción del grupo de red" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" -msgstr "Nombre del dominio NIS" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" -msgstr "ID unico de IPA" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -"\n" -" Añadir un nuevo grupo de red." -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" -msgstr "\"%(value)s\"netgroup añadido" +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "Los registros para la zona DNS" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -"\n" -" Eliminar un netgroup" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" -msgstr "%(value)s\" de netgroup eliminados" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "Configuración de la Zona DNS" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -"\n" -" Modificar un grupo de red." -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" -msgstr "netgroup modificado \"%(value)s\"" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -"\n" -" Buscar un netgroup." -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "%(count)d autoservicio coincidente" -msgstr[1] "%(count)d autoservicios coincidentes" +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -"\n" -" Mostrar información sobre un grupo de red." -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -"\n" -" Agregar miembros a un grupo de red." -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -"\n" -" Eliminar miembros de un grupo de red." -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -"\n" -"Establecer contraseña de un usuario\n" -"\n" -"Si alguien que no sea un usuario cambia la contraseña del usuario (por ejemplo, Servicio de Ayuda la restablece), entonces la contraseña tendrá que ser cambiada la primera vez que se utiliza. Esto es para que el usuario final sea el único que conoce la contraseña.\n" -"La directiva de contraseñas IPA controla la frecuencia de cambio de una contraseña, los requisitos de fortaleza y longitud del historial de contraseñas.\n" -"\n" -"EJEMPLOS:\n" -"\n" -"Para restablecer su contraseña:\n" -" ipa passwd\n" -"\n" -" Para cambiar la contraseña de otro usuario:\n" -" ipa passwd tuser1\n" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -"\n" -" Establecer una contraseña de usuario" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" -msgstr "Cambio de contraseña para \"%(value)s\"" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -"\n" -" Ejecutar la operación de passwd. \n" -"\n" -" El DN no debe ser pasado como un argumento de palabra clave, ya que es construido\n" -" por este método.\n" -"\n" -" Devuelve la entrada\n" -"\n" -" :param principal: El nombre del registro o principal del usuario\n" -" :param password: La nueva contraseña\n" -" " -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -"\n" -"Permisos\n" -"\n" -"Un permiso permite delegación de grano fino de derechos. Un permiso es una regla de control de acceso 389-ds o de instrucción (ACI).\n" -"\n" -"Un permiso otorga el derecho de realizar tareas tales como añadir un usuario, modificar un grupo, etc.\n" -"Un permiso no puede contener otros permisos.\n" -"Un permiso otorga acceso de lectura, escritura, agregar o borrar.\n" -"Un privilegio combina permisos similares (por ejemplo, todos los permisos \n" -" necesarios para agregar un usuario).\n" -"Un rol otorga un set de privilegios para usuarios, grupos, hosts o hostgroups.\n" -"Un permiso está compuesto de varias partes:\n" -"\n" -"1. El nombre del permiso.\n" -"2. El destino del permiso.\n" -"3. Los derechos otorgados por permiso.\n" -"\n" -"Los derechos definen las operaciones permitidas y pueden ser una o más de las siguientes.\n" -"\n" -"1. write - escribir uno o más atributos\n" -"2. read - leer uno o más atributos\n" -"3. add - agregar una nueva entrada al árbol\n" -"4. delete - borrar una entrada existente\n" -"5. all- todos los permisos son otorgados\n" -"\n" -"El permiso de lectura se otorga a la mayoría de los atributos y entradas. Los permisos son independientes, por lo tanto, poder agregar un usuario no significa que el usuario sea editable.\n" -"Hay un número de destinos permitidos:\n" -"1. type: un tipo de objeto (usuario, grupo, etc).\n" -"2. memberof: un miembro de grupo o hostgroup\n" -"3. filter: un filtro de LDAP \n" -"4. subtree: un filtro LDAP que especifica parte del LDAP DIT. Es un\n" -" super-set del \"type\" target.\n" -"5. targetgroup: otorga acceso para modificar un grupo específico (tal como otorgar\n" -" los derechos para administrar la membresía de grupo)\n" -"EJEMPLOS:\n" -"Añadir un permiso que otogue la creación de usuarios:\n" -"\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"Añadir un permiso que otorgue la capacidad de administrar una membresía de grupo:\n" -"\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group \n" -"Members\"\n" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" -msgstr "Tipo de permiso" +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "Estatus" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "Configuración del grupo" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "¿Es esto un grupo POSIX?" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "Activo" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "Cualquier host" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "Cualquier servicio" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "Cualquiera" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " -msgstr "" -"\n" -" Objeto de permiso" +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "Acceso" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" -msgstr "Nombre de permiso" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "Inactivos" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "Estatus de reglas" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "Vía de servicio" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "Desde" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "Hosts y grupos especificados" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "Servicios y grupos especificados" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "Usuarios y grupos específicos" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "¿Quién?" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -"Lista de permisos que otorgan (leer, escribir, añadir, borrar, todos)" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -"Tipo de objeto del IPA (usuario, host, hostgroup, servicio, netgroup, dns)" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" -msgstr "Miembro del grupo" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" -msgstr "Objetivo para los miembros de un grupo" +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" -msgstr "Subárbol para aplicar permisos" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" -msgstr "Grupo de usuario para aplicar permisos" +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -"\n" -" Añadir un nuevo permiso" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" -msgstr "Permiso agregado \"%(value)s\"" +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -"\n" -" Borrar un permiso" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" -msgstr "Permiso borrado \"%(value)s\"" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -"\n" -" Modificar un permiso" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" -msgstr "Modificado el permiso \"%(value)s\"" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "Certificado de host" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " -msgstr "" -"\n" -" Búsqueda de permisos" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "Nombre de host" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "%(count)d permiso coincidente" -msgstr[1] " %(count)d permisos coincidentes" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "La eliminación de clave, unprovision" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "Configuración del host" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "¿Inscrito?" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "Inscripción" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "Nombre de host totalmente calificado" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -"\n" -" Mostrar información sobre un permiso" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "No hay clave Kerberos Presente" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "Claves de Kerberos presente, Host aprovisionado" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -"\n" -" Añadir miembros a un permiso" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -"\n" -" Remover miembros de un permiso" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -"\n" -"Contacte con ping al servidor remoto de la IPA\n" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -"\n" -" Contacte con ping a un servidor remoto\n" -" " -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" msgstr "" -"\n" -" Una posible mejora sería la de tener un argumento y hacerle eco, \n" -"\n" -" aunque un valor fijo funciona por ahora.\n" -" " -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "Establecer OTP" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -"\n" -"Opciones de kerberos pkinit\n" -"Activan o desactivan pkinit anónimo mediante el principal\n" -"WELLKNOWN/ANONYMOUS@REALM. El servidor debe haber sido instalado con soporte pkinit.\n" -"EJEMPLOS:\n" -"Activar pkinit anónimo\n" -" ipa pkinit-anonymous enable\n" -"Desactivar pkinit anónimo:\n" -" ipa pkinit-anonymous disable\n" -"Para obtener mayor información sobre pkinit anónimo, por favor consulte: \n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" -"\n" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "Unprovision" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "¿Está seguro que desea unprovision este equipo?" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "Unprovisioning " + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "Configuraciones del Grupo de Host" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "Política de vale de Kerberos" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "Configuración de Netgroup" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "Identidad" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "Permiso con especificación de destino inválida" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "Meta" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "Configuración de privilegios" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "Directiva de contraseñas" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "Configuración de rol" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "Certificado de servicio" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "Configuración del servicio" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "Aprovisionamiento" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "¿Está seguro de que desea no suministrar este servicio?" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "Claves de Kerberos actuales, Servicio suministrado" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "Grupos" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "Comandos" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "Permitir" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "Cualquier comando" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "Cualquier grupo" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "Ejecutar comandos" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "Negar" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "Externos" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "Acceder a este host" + +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -"\n" -" Por ahora solo comprobar que está correctamente codificado en base 64." -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" -msgstr "PKINIT" +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "Como Whom" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "Comandos especificados y grupos" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "Grupos especificados" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "Configuración de la cuenta" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -"\n" -" Establecer los atributos individuales de algunos \n" -" valores de un certificado. \n" -" entry_attrs es un dict de una entrada no \n" -" retorna nada" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -"\n" -" Determinar si el archivo tiene permisos de \n" -" escritura. Si el archivo no existe, abra el archivo \n" -" para probar capacidad de escritura." -#: ipalib/plugins/privilege.py:19 +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -"\n" -"Privilegios\n" -"Un privilegio combina permisos dentro de una tarea lógica. Un permiso proporciona\n" -"los derechos para realizar una tarea específica.\n" -"Por ejemplo, añadir un usuario requiere los siguientes permisos:\n" -"* Crear una nueva entradasd de usuario\n" -"* Restablecer una contraseña de usuario\n" -"* Añadir el nuevo usuario al grupo de usuario predeterminado de IPA\n" -"\n" -"Combinar estos tres niveles inferiores dentro de una tarea de nivel superior en forma de un privilegio \n" -"denominado \"Add User\" facilita el manejo de roles.\n" -"\n" -"Un privilegio no puede contener otros privilegios.\n" -"\n" -"Ver el rol y el permiso para información adicional. \n" -"\n" -" \n" -"\n" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -"\n" -" Comprobar si el certificado se escribe en un archivo y hacerlo." -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "Configuración de contactos" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "Información del Empleado" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "Error al cambiar el estado de cuenta" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "Dirección de correo" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "Información diversa" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "Nueva Contraseña" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "Cambiar la contraseña completa" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "Las contraseñas deben coincidir" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "Restablecer contraseña" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -"\n" -" Modificar un servicio de la IPA." -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" -msgstr "Privilegio añadido \"%(value)s\"" +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "¿Está seguro que desea eliminar las entradas seleccionadas?" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -"\n" -" Mostrar información sobre un servicio de la IPA." -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" -msgstr "Privilegio eliminado \"%(value)s \"" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "Enlaces rápidos" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr " Seleccionar todo" + +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Modify a privilege.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "La solicitud devolvió más resultados que el límite de tamaño configurado. Mostrando los primeros resultados ${counter}." + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "Anular selección" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "Auditoría" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "Montaje automático" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "Control de Acceso basado en Host" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "Servidor IPA" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "Política" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "Control de acceso basado en rol" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "Sudo" + +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -"\n" -" Retirar hosts que pueden administrar este servicio." -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" -msgstr "Privilegio modificado \"%(value)s \"" +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -"\n" -" Servicio inhabilitado" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "%(count)d privilegio coincidente" -msgstr[1] "%(count)d privilegios coincidentes" +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -"\n" -" Objeto de comando sudo" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -"\n" -" Comandos de sudo" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "El texto no coincide con el patrón de campo" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -"\n" -" Eliminar miembros de un privilegio" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -"\n" -" Añadir permisos a un privilegio." -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" -msgstr "Número de permisos añadidos" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -"\n" -" Remover permisos de un privilegio" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" -msgstr "Número de permisos eliminados" +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "Dictado de los mensajes regionales" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Password policy\n" +"Kerberos ticket policy\n" "\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" "\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" +"You can also create a per-user ticket policy by specifying the user login.\n" "\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "\nFunciones \n\nUn rol se utiliza para la delegación de grano fino. Un permiso otorga la capacidad de realizar tareas de bajo nivel (añadir un usuario, modificar un grupo, etc.) Un privilegio combina uno o más permisos en una abstracción \nde nivel superior tales como useradmin. Un useradmin sería capaz de añadir, eliminar y modificar usuarios. \n\nLos privilegios son asignados a roles.\n\nLos usuarios, grupos, hosts y hostgroups pueden ser miembros de un Rol. \n\nLos Roles no pueden contener otros roles.\n\nEJEMPLOS:\n\nAñadir un nuevo rol: \n ipa role-add --desc=\"Junior-level admin\" junioradmin\n ipa role-add-privilege --privileges=change_password junioradmin\n ipa role-add-privilege=add_user_to_default_group\njunioradmin\n\nAgregar un grupo de usuarios a este rol:\n ipa group-add --desc=\"User admins\" useradmins \n ipa role-add-member --groups=useradmins junioradmin \n\nMostrar información sobre el rol:\n ipa role-show junioradmin\n\nEl resultado de esto es que cualquier usuario en el grupo 'useradmins' puede agregar usuarios, restablecer contraseñas o añadir un usuario al grupo de usuarios predeterminado de la IPA.\n" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr " Política de tiquete de Kerberos" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "Administra política de ticket para un usuario específico" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "Vida máxima" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "Duración máxima del ticket (en segundos)" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "Renovación máxima" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "Duración máxima renovable (en segundos)" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 +msgid "" "\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +"Migration to IPA\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" -msgstr "" +"The default user container is ou=People.\n" "\n" -"Política de contraseñas\n" +"The default group container is ou=Groups.\n" "\n" -"Una contraseña establece límites en contraseñas de IPA, incluyendo máxima y mínima duración, el número de contraseñas a guardar en historial, el número de clases de caracteresrequeridos (para contraseñas ás fuertes)\n" -"y el mínimo de longitud de una contraseña.\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -"Por defecto es una única política global para todos los usuarios. También puede crear una política de contraseña para aplicar a un grupo. Cada usuario está sujeto solamente a una política de contraseña, ya sea de grupo o global. Una política de grupo es autónoma; no es uper-set de la política global mas los parámetros personalizados.\n" -"Cada política de contraseña requiere una configuración única . Si un usuario está en varios grupos que tienen políticas de contraseñas, esta prioridad determina qué política de contraseña aplica. Un valor inferior indica una política de prioridad superior.\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" -"Las políticas de contraseña de grupo se eliminan automáticamente cuando se eliminan los grupos a los cuales están asociados.\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" "\n" -"EJEMPLOS:\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" "\n" -" Modificar la política global:\n" -" ipa pwpolicy-mod --minlength=10\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" -" Agregar una política de contraseña de nuevo grupo:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"EXAMPLES:\n" "\n" -" Mostrar una política de contraseña global:\n" -" ipa pwpolicy-show\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" "\n" -" Mostrar una política de contraseña de grupo:\n" -" ipa pwpolicy-show localadmins\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Mostrar la política que sería aplicada al usuario dado:\n" -" ipa pwpolicy-show --user=tuser1\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Modificar una polítca de contraseña de grupo:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "El principal %s de Kerberos ya existe. Utilice 'ipa user-mod' para definirlo manualmente." + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "Falló al intenatar agregar al usuario al grupo predeterminado. Utilice 'ipa group-add-member' para agregarlo manualmente. " + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -"\n" -" Clase de servicio objeto que se utiliza para vincular las políticas con los grupos" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -"la prioridad debe ser un valor único (%(prio)d que ya esté siendo utilizado " -"por %(gname)s)" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Password Policy object\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -"\n" -" Objeto de directiva de contraseña" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" -msgstr "Número máximo de fallas" - -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" -msgstr "Fallos consecutivos antes del bloqueo" - -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" -msgstr "Falló reajuste de intervalo" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr " URI LDAP no válida." -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -"Período tras el cual se restablecerá (segundos) el conteo de errores" - -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" -msgstr "Duración de bloqueo" - -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" -msgstr "Período durante el cual se fuerza el bloqueo (segundos)" - -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" -msgstr "Grupo" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" -msgstr "Administra la política de contraseña de un grupo específico" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "LDAP URI" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" -msgstr "Vida máxima (días)" +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "LDAP URI del servidor DS desde donde realizar la migración" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" -msgstr "Vida máxima de la contraseña (días)" +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "asociar contraseña" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" -msgstr "Vida mínima (horas)" +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "Asociar DN" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" -msgstr "Vida mínima de la contraseña (en horas)" +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "Contenedor de usuario" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" -msgstr "Tamaño del historial" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "RDN de contenedor para los usuarios en DS" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" -msgstr "Tamaño del historial de la contraseña" +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "Contenedor de grupoi" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" -msgstr "Clases de caracteres" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "RDN del contenedor para grups en DS" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" -msgstr "Cantidad mínima de clases de caracteres" +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "Clase de objeto de usuario" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" -msgstr "Longitud mínima" +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "Lista separada por comas de clases de objetos utilizados para buscar las entradas de usuario en DS" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" -msgstr "Longitud mínima de la contraseña" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "Clase de objeto de grupo" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" -msgstr "Prioridad" +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "Lista separada por comas de clases de objetos utilizados para la búsqueda de entradas de grupo en DS" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -"Prioridad de la política (a mayor número corresponde una política menor)" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:373 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -"\n" -" Asegúrese de que la duración máxima sea mayor que la mínima. \n" -" Si no hay duración mínimo establecida, entonces no devolverá un error." - -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." -msgstr "La duración máxima de la contraseña debe ser mayor que la mínima." -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -"\n" -" Agregar una directiva de contraseña de grupo." -#: ipalib/plugins/pwpolicy.py:361 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -" Delete a group password policy.\n" -" " +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -"\n" -" Eliminar una directiva de contraseñas de grupo." -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -"\n" -" Modificar una directiva de contraseñas de grupo." -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "la prioridad no puede ser definida en una plítica global" - -#: ipalib/plugins/pwpolicy.py:423 +#: ipalib/plugins/migration.py:389 msgid "" -"\n" -" Display information about password policy.\n" -" " +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -"\n" -" Mostrar información sobre la directiva de contraseñas." - -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" -msgstr "Usuario" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" -msgstr "Ofrece la política efectiva para un determinado usuario" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" -#: ipalib/plugins/pwpolicy.py:452 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" Search for group password policies.\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -"\n" -" Buscar políticas de contraseña de grupo." -#: ipalib/plugins/role.py:20 -msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -"\n" -"Roles\n" -"\n" -"Un rol sirve para la delegación de grano fino. Un permiso otorga la capacidad de realizar tareas de bajo nivel (añadir un usuario, modificar un grupo, etc.) Un privilegio combina uno o más permisos en una abstracción de nivel superior tal como useradmin. Un useradmin sería capaz de añadir, eliminar y modificar usuarios. \n" -"\n" -"Los privilegios son asignados a los roles.\n" -"\n" -"Usuarios, grupos, hosts y hostgroups pueden ser miembros de un Rol. \n" -"\n" -"Los roles no pueden contener otros roles. \n" -"\n" -"EJEMPLOS: \n" -"\n" -"Añadir un nuevo rol: \n" -" ipa role-add --desc=\"Junior-level dmin\"junioradmin \n" -"Añadir algunos privilegios a este rol:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege \n" -" --privileges=change_password junioradmin\n" -" ipa role-add-privilege--\n" -" privileges=add_user_to_default_group juioradmin\n" -"\n" -"Añadir un grupo de usuarios a este rol:\n" -" ipa group-add --desc=\"User admins\" \n" -" useradmins⏎ \n" -" ipa role-add-member --groups=useradmins \n" -" junioradmin\n" -"\n" -"Mostrar información sobre el rol\n" -" ipa role-show junioradmin\n" -"\n" -"El resultado es que cualquier usuario en el grupo 'useradmins' puede añadir usuarios, establecer contraseñas y agregar un usuario al grupo de usuario de IPA predeterminado.\n" -"\n" -#: ipalib/plugins/role.py:62 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Role object.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -"\n" -" Objeto de rol." -#: ipalib/plugins/role.py:81 -msgid "Role" -msgstr "Rol" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "Esquema LDAP" -#: ipalib/plugins/role.py:86 -msgid "Role name" -msgstr "Nombre de rol" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "El esquema utilizado en el servidor LDAP. Los valores admitidos son RFC2307 y RFC2307bis. El valor predeterminado es RFC2307bis" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" -msgstr "Una descripción de este grupo de roles" +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" -#: ipalib/plugins/role.py:101 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Add a new role.\n" -" " -msgstr "" -"\n" -" Añadir un nuevo rol." +"Continuous operation mode. Errors are reported but the process continues" +msgstr "Modo de funcionamiento continuo. Se reportan errores, pero el proceso continúa" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" -msgstr "Rol agregado \"%(value)s\"" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "Lista de objetos migrados; clasificados por tipo." -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " -msgstr "" -"\n" -" Eliminar un rol." +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "Lista de objetos que no pueden ser migrados; categorizados por tipo." -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" -msgstr "Rol eliminado \"%(value)s\"" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "\"False\", si el modo de migración fue inhabilitado." -#: ipalib/plugins/role.py:121 +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "lista de %s separada por comas a ser excluida de la migración" + +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Modify a role.\n" -" " -msgstr "" -"\n" -" Modificar un rol." +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "los resultados de la búsqueda de los objetos que se van a migrar se han truncado por el servidor; el proceso de migración puede estar incompleto\n" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" -msgstr "Rol modificado \"%(value)s\"" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "El modo de migración se encuentra inhabilitado. Utilice 'ipa config-mod' para habilitarlo." -#: ipalib/plugins/role.py:131 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Search for roles.\n" -" " -msgstr "" -"\n" -" Búsqueda de papeles." +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "Las contraseñas han sido migradas en formato pre-hashed.\nIPA es incapaz de generar claves de Kerberos a menos que le sean\nprovistas contraseñas de texto claras. Todos los usuarios migrados\nnecesitan registrarse en https://your.domain/ipa/migration/ antes de\npoder utilizar sus respectivas cuentas Kerberos." -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "%(count)d rol coincidente" -msgstr[1] "%(count)d roles coincidentes" +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "No se encuentra contenedor para %(container)s " -#: ipalib/plugins/role.py:143 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Display information about a role.\n" -" " -msgstr "" -"\n" -" Mostrar información sobre un rol." +"Misc plug-ins\n" +msgstr "\nMisc plug-ins\n" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -"\n" -" Añadir miembros a un rol." -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " -msgstr "" -"\n" -" Eliminar miembros de un rol." +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d variables" -#: ipalib/plugins/role.py:167 +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Add privileges to a role.\n" -" " -msgstr "" -"\n" -" Añadir privilegios a una función." +"retrieve and print all attributes from the server. Affects command output." +msgstr " Determinar si la ACI es un autoservicio de ACI y hacer una excepción si\n no lo es.\n Devolver el resultado si se trata de un autoservicio de ACI." -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" -msgstr "Número de privilegios agregados" +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "Cantidad total de variables env (>= count)" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "Cantidad de variables devueltas (<= total)" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -"\n" -" Quitar privilegios de una función." -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" -msgstr "Número de privilegios eliminados" +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "%(count)d complemento cargado" +msgstr[1] "%(count)d complementos cargados" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" +msgstr "Cantidad de complementos cargados" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Netgroups\n" "\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" -"\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" -"\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" -"\n" -"Permisos de autoservicio\n" -"\n" -"Un permiso permite la delegación de grano fino de permisos. \n" -"\n" -"Las reglas o instrucciones (ACI), conceden el permiso para realizar tareas, tales como, agregar un usuario, modificar un grupo, etc. \n" -"Un permiso de autoservicio define lo que un objeto puede cambiar en su propia entrada. \n" -"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -"EJEMPLOS:\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -"Agregar una regla de auto-servicio para permitir a los usuarios administrar su dirección: \n" -" ipa selfservice-add --permissions=write \n" -"--attrs=street,postalCode,l,c,st \"Users manage their own address\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -"Al administrar la lista de atributos necesita incluir todos los atributos de la lista, incluyendo los ya existentes. Añadir telephoneNumber a la lista:\n" -"\"Users manage their own address\"\n" -"Mostrar una regla actualizada:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -"Borrar una regla:\n" -" ipa selfservice-del \"Users manage their own address\" \n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" +msgstr "\nGrupos de Red\nUn grupo de red es un grupo usado para comprobación de permisos. Puede contener valores tanto del usuario como del host.\nEJEMPLOS:\n\n Añadir un nuevo grupo de red:\n ipa netgroup-add --desc=\"NFS admins\" admins\n\n Añadir miembros al grupo de red:\n ipa netgroup-add-member --users=tuser1,tuser2 admins\n\n Eliminar miembro del grupo de red:\n ipa netgroup-remove-member --users=tuser2 admins\n\n Mostrar información sobre el grupo de red:\n ipa netgroup-show admins\n\n Borrar un grupo de red:\n ipa netgroup-del admins\n" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" +msgstr "Miembro del equipo anfitrión" + +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -"\n" -" Determinar si la ACI es un autoservicio de ACI hacer una excepción si\n" -" no lo es.\n" -" Devolver el resultado si se trata de un autoservicio \n" -" de ACI." -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" -msgstr "No se encontró permiso de autoservicio ' %(permission)s' " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "Grupos de red" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -"\n" -" Objeto de Autoservicio." -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" -msgstr "Permisos de autoservicio" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "Nombre de grupo de red" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" -msgstr "Auto-servicio de nombres" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "Descripción del grupo de red" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "Nombre del dominio NIS" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" +msgstr "ID unico de IPA" + +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -"\n" -" Añadir un nuevo permiso de autoservicio" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" -msgstr "Añadido autoservicio \"%(value)s\"" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "\"%(value)s\"netgroup añadido" -#: ipalib/plugins/selfservice.py:137 +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Delete a self-service permission.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -"\n" -" Eliminar un nuevo permiso de autoservicio" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" -msgstr "autoservicio eliminados \"%(value)s\"" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "%(value)s\" de netgroup eliminados" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -"\n" -" Modificar un permiso de autoservicio" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" -msgstr "Autoservicio modificado \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "netgroup modificado \"%(value)s\"" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -"\n" -" Buscar permiso de autoservicio" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "%(count)d autoservicio coincidente" msgstr[1] "%(count)d autoservicios coincidentes" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -"\n" -" Mostrar información sobre un permiso de autoservicio." -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"Set a user's password\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" "\n" -msgstr "" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" "\n" -"Servicios\n" +"EXAMPLES:\n" "\n" -"Un servicio IPA es un servicio que se ejecuta en un host. El servicio de registro IPA puede almacenar un principal de Kerberos, un certificado SSL, o ambos.\n" +" To reset your own password:\n" +" ipa passwd\n" "\n" -"Un servicio IPA puede ser adminstrado directamente desde una máquina, siempre y cuando las máquinas tengarn el permiso correcto. \n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "\nEstablecer contraseña de un usuario\n\nSi alguien que no sea un usuario cambia la contraseña del usuario (por ejemplo, Servicio de Ayuda la restablece), entonces la contraseña tendrá que ser cambiada la primera vez que se utiliza. Esto es para que el usuario final sea el único que conoce la contraseña.\nLa directiva de contraseñas IPA controla la frecuencia de cambio de una contraseña, los requisitos de fortaleza y longitud del historial de contraseñas. EJEMPLOS:\nPara restablecer su contraseña:\n ipa passwd tuser1\n\n Para cambiar la contraseña de otro usuario:\n ipa passwd tuser1\n" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "Cambio de contraseña para \"%(value)s\"" + +#: ipalib/plugins/permission.py:27 +msgid "" "\n" -"Esto es cierto incluso para máquinas diferentes con la que se asocia el servicio. Por ejemplo,\n" -"solicitando un certificado SSL mediante las credenciales del principal de servicio de host necesita autenticarse con kinit como el host:\n" -"# kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"Permissions\n" "\n" -"Añadir un servicio de IPA le permite al servicio solicitar un certificado o tabla de claves SSL, pero se realiza como un paso separado: no se produce como resultado de adicionar el servicio.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"Solamente el aspecto público de un certificado se almacena en un registro de servicio; la clave privada no se almacena.\n" +"A permission may not contain other permissions.\n" "\n" -"EJEMPLOS:\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Añadir un nuevo servicio IPA:\n" -" ipa service-add HTTP/web.example.com\n" +"A permission is made up of a number of different parts:\n" "\n" -"Permitir a un host administrar un certificado de servicio IPA:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -"Borrar un servicio IPA:\n" -" ipa service-del HTTP/web.example.com\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -"Buscar todos los servicios IPA asociados con el host:\n" -" ipa service-find web.example.com\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -"Encontrar todos los servicio HTTP:\n" -" ipa service-find HTTP\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -"Solicitar un certificado para un servicio IPA:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"EXAMPLES:\n" "\n" -" Generar y recuperar una tabla de claves para un servicio IPA:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" "\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "\nPermisos\n\nUn permiso permite delegación de grano fino de derechos. Un permiso es una regla de control de acceso 389-ds o de instrucción (ACI).\n\nUn permiso otorga el derecho de realizar tareas tales como añadir un usuario, modificar un grupo, etc.\nUn permiso no puede contener otros permisos.\nUn permiso otorga acceso de lectura, escritura, agregar o borrar.\nUn privilegio combina permisos similares (por ejemplo, todos los permisos \n necesarios para agregar un usuario).\nUn rol otorga un set de privilegios para usuarios, grupos, hosts o hostgroups.\nUn permiso está compuesto de varias partes:\n\n1. El nombre del permiso.\n2. El destino del permiso.\n3. Los derechos otorgados por permiso.\n\nLos derechos definen las operaciones permitidas y pueden ser una o más de las siguientes.\n\n1. write - escribir uno o más atributos\n2. read - leer uno o más atributos\n3. add - agregar una nueva entrada al árbol\n4. delete - borrar una entrada existente\n5. all- todos los permisos son otorgados\n\nEl permiso de lectura se otorga a la mayoría de los atributos y entradas. Los permisos son independientes, por lo tanto, poder agregar un usuario no significa que el usuario sea editable.\nHay un número de destinos permitidos:\n1. type: un tipo de objeto (usuario, grupo, etc).\n2. memberof: un miembro de grupo o hostgroup\n3. filter: un filtro de LDAP \n4. subtree: un filtro LDAP que especifica parte del LDAP DIT. Es un\n super-set del \"type\" target.\n5. targetgroup: otorga acceso para modificar un grupo específico (tal como otorgar\n los derechos para administrar la membresía de grupo)\nEJEMPLOS:\nAñadir un permiso que otogue la creación de usuarios:\n\n ipa permission-add --type=user --permissions=add \"Add Users\"\nAñadir un permiso que otorgue la capacidad de administrar una membresía de grupo:\n\n ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group \nMembers\"\n" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " -msgstr "" -"\n" -" Por ahora solo comprobar si está correctamente \n" -" codificado en base 64." +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "Tipo de permiso" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -"\n" -" Establecer los atributos individuales de algunos \n" -" valores de un certificado. \n" -" entry_attrs es un dict de una entrada no retorna\n" -" nada" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -"\n" -" Objeto de servicio." -#: ipalib/plugins/service.py:226 -msgid "Service principal" -msgstr "Servicio principal" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "Nombre de permiso" -#: ipalib/plugins/service.py:242 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new IPA new service.\n" -" " -msgstr "" -"\n" -" Añadir un servicio de la nueva IPA." +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "Lista de permisos que otorgan (leer, escribir, añadir, borrar, todos)" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" -msgstr "Ha sido agregado el servicio \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "Tipo de objeto del IPA (usuario, host, hostgroup, servicio, netgroup, dns)" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" -msgstr "fuerza el nombre del prinicpal, aún si no se encuentra en DNS" +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "Miembro del grupo" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " -msgstr "" -"\n" -" Eliminar un servicio de la IPA." +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "Objetivo para los miembros de un grupo" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" -msgstr "Ha sido eliminado el servicio \"%(value)s\"" +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "Subárbol para aplicar permisos" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "Grupo de usuario para aplicar permisos" + +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -"\n" -" Modificar un servicio de la IPA." -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" -msgstr "Ha sido modificado el servicio \"%(value)s\"" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "Permiso agregado \"%(value)s\"" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -"\n" -" Buscar servicios de la IPA." -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "%(count)d servicio coincidente" -msgstr[1] "%(count)d servicios coincidentes\t\t\t" +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "Permiso borrado \"%(value)s\"" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -"\n" -" Mostrar información sobre un servicio de la IPA." -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "Modificado el permiso \"%(value)s\"" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -"\n" -" Añadir hosts que puedan administrar este servicio." -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "%(count)d permiso coincidente" +msgstr[1] " %(count)d permisos coincidentes" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." msgstr "" -"\n" -" Retirar los hosts que puedan administrar este\n" -" servicio." -#: ipalib/plugins/service.py:452 +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " -msgstr "" -"\n" -" Desactivar el certificado SSL y Kerberos clave de un \n" -" servicio." +"Ping the remote IPA server\n" +msgstr "\n\\n\n Contacte con ping al servidor remoto de la API\n" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" -msgstr "Servicio inhabilitado \"%(value)s\"" +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." +msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Sudo Commands\n" +"Kerberos pkinit options\n" "\n" -"Commands used as building blocks for sudo\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" +"\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "\nOpciones de kerberos pkinit\nActivan o desactivan pkinit anónimo mediante el principal\nWELLKNOWN/ANONYMOUS@REALM. El servidor debe haber sido instalado con soporte pkinit.\nEJEMPLOS:\nActivar pkinit anónimo\n ipa pkinit-anonymous enable\nDesactivar pkinit anónimo:\n ipa pkinit-anonymous disable\nPara obtener mayor información sobre pkinit anónimo, por favor consulte: \nhttp://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n\n" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr " Los certificados de entrada deben estar codificados en DER. \n Tenga en cuenta que no puede ser un normalizador en la Param, ya que solamente las variables de \n Unicode se normalizan.\n " + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" + +#: ipalib/plugins/privilege.py:23 +msgid "" "\n" -"Comandos de Sudo\n" +"Privileges\n" "\n" -"Comandos usados como partes integrantes de sudo\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -"EJEMPLOS:\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" Crear un comando nuevo\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Eliminar un comando\n" -" ipa sudocmd-del /usr/bin/less\n" +"A privilege may not contain other privileges.\n" "\n" +"See role and permission for additional information.\n" +msgstr "\nPrivilegios\nUn privilegio combina permisos dentro de una tarea lógica. Un permiso proporciona\nlos derechos para realizar una tarea específica.\nPor ejemplo, añadir un usuario requiere los siguientes permisos:\nCrear una nueva entradasd de usuario\nRestablecer una contraseña de usuario\nAñadir el nuevo usuario al grupo de usuario predeterminado de IPA\nCombinar estos tres niveles inferiores dentro de una tarea de nivel superior en forma de un privilegio \ndenominado \"Add User\" facilita el manejo de roles.\n\nUn privilegio no puede contener otros privilegios.\n\nVer el rol y el permiso para información adicional. \n\n \n\n\n" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -"\n" -" Objeto de comandos sudo." -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" -msgstr "Comandos de sudo" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" +msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" -msgstr "Comando sudo " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" +msgstr " Objeto de servicio." -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" -msgstr "Una descripción de este comando " +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" +msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" +msgstr " Añadir un nuevo servicio de la nueva IPA." + +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" +msgstr " \n Eliminar un servicio de la IPA." + +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -"\n" -" Crear nuevo comando sudo." -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" -msgstr "\"%(value)s\" de comando sudo agregado " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "Privilegio añadido \"%(value)s\"" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "Privilegio eliminado \"%(value)s \"" + +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "Privilegio modificado \"%(value)s \"" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." msgstr "" -"\n" -" Eliminar comando sudo." -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" -msgstr "\"%(value)s\" de comando sudo suprimido" +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "%(count)d privilegio coincidente" +msgstr[1] "%(count)d privilegios coincidentes" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -"\n" -" Modificar comando." -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" -msgstr "\" %(value)s \" de comando sudo modificado " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." +msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -"\n" -" Buscar comandos." -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "%(count)d de comando sudo coincidente" -msgstr[1] "%(count)d de comando sudo coincidentes" +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "Número de permisos añadidos" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." msgstr "" -"\n" -" Mostrar comando sudo." -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" +msgstr "Número de permisos eliminados" + +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"Password policy\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" -msgstr "" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" -"Grupos de comandos sudo\n" +"EXAMPLES:\n" "\n" -"Administrar grupos de comandos sudo. \n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -"EJEMPLOS: \n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -"Agregar un nuevo grupo comando sudo: \n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -"Eliminar un grupo comando sudo:\n" -" ipa sudocmdgroup-del admincmds\n" -" \n" -"Administrar membresía de grupo de sudo, comandos: \n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -"Administrar membresía de grupo de sudo,comandos: \n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" -"Mostrar un grupo de comando de sudo:\n" -" ipa group-show localadmins\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" +msgstr "\nPolítica de contraseñas\n\nUna contraseña establece límites en contraseñas de IPA, incluyendo máxima y mínima duración, el número de contraseñas a guardar en historial, el número de clases de caracteresrequeridos (para contraseñas ás fuertes)\ny el mínimo de longitud de una contraseña.\n\nPor defecto es una única política global para todos los usuarios. También puede crear una política de contraseña para aplicar a un grupo. Cada usuario está sujeto solamente a una política de contraseña, ya sea de grupo o global. Una política de grupo es autónoma; no es uper-set de la política global mas los parámetros personalizados.\nCada política de contraseña requiere una configuración única . Si un usuario está en varios grupos que tienen políticas de contraseñas, esta prioridad determina qué política de contraseña aplica. Un valor inferior indica una política de prioridad superior.\n\nLas políticas de contraseña de grupo se eliminan automáticamente cuando se eliminan los grupos a los cuales están asociados.\n\nEJEMPLOS:\n\n Modificar la política global:\n ipa pwpolicy-mod --minlength=10\n\n Agregar una política de contraseña de nuevo grupo:\n ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n\n Mostrar una política de contraseña global:\n ipa pwpolicy-show\n\n Mostrar una política de contraseña de grupo:\n ipa pwpolicy-show localadmins\n\n Mostrar la política que sería aplicada al usuario dado:\n ipa pwpolicy-show --user=tuser1\n\n Modificar una polítca de contraseña de grupo:\n ipa pwpolicy-mod --minclasses=2 localadmins\n" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " -msgstr "" -"\n" -" Objeto de grupo sudo" +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "la prioridad debe ser un valor único (%(prio)d que ya esté siendo utilizado por %(gname)s)" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" -msgstr "Grupo de comando sudo" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -"\n" -" Crear nuevo grupo de comando sudo" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" -msgstr "\"%(value)s\" de comando sudo agregado" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" +msgstr "Número máximo de fallas" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " -msgstr "" -"\n" -" Borrar grupo de comando sudo." +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" +msgstr "Fallos consecutivos antes del bloqueo" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" -msgstr "\"%(value)s\" de comando sudo suprimido" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" +msgstr "Falló reajuste de intervalo" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" +msgstr "Período tras el cual se restablecerá (segundos) el conteo de errores" + +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" +msgstr "Duración de bloqueo" + +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" +msgstr "Período durante el cual se fuerza el bloqueo (segundos)" + +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -"\n" -" Modificar grupo." -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" -msgstr "\"%(value)s\" de grupo de comando sudo modificado" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" +msgstr "Grupo" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "Administra la política de contraseña de un grupo específico" + +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "Vida máxima (días)" + +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" +msgstr "Vida máxima de la contraseña (días)" + +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" +msgstr "Vida mínima (horas)" + +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" +msgstr "Vida mínima de la contraseña (en horas)" + +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" +msgstr "Tamaño del historial" + +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" +msgstr "Tamaño del historial de la contraseña" + +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "Clases de caracteres" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" +msgstr "Cantidad mínima de clases de caracteres" + +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" +msgstr "Longitud mínima" + +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "Longitud mínima de la contraseña" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "Prioridad" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "Prioridad de la política (a mayor número corresponde una política menor)" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "La duración máxima de la contraseña debe ser mayor que la mínima." + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -"\n" -" Buscar grupos de comando sudo." -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "%(count)d grupo comando sudo coincidente" -msgstr[1] "%(count)d grupos de comando sudo coincidentes" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -"\n" -" Mostrar grupo de comandos de sudo." -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -"\n" -" Añadir miembros a grupo de comandos de sudo." -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "la prioridad no puede ser definida en una plítica global" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "Usuario" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "Ofrece la política efectiva para un determinado usuario" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -"\n" -" Eliminar miembros de grupo comandos de sudo." -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Roles\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Privileges are assigned to Roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"Sudo (su \"do\") permite al administrador del sistema delegar autoridad a\n" -"algunos usuarios (o grupos de usuarios) para que ejecuten algunos (o todos)\n" -"los comandos como root u otro usuario mientras proporcionan una auditoría de los\n" -"comandos y sus argumentos.\n" +"Roles can not contain other roles.\n" "\n" -"FreeIPA proporciona una binddn designada para usar con Sudo localizado en:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"EXAMPLES:\n" "\n" -"Para permitir ejecutar binddn se debe ejecutar el siguiente comando para establecer la contraseña:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"Para obterner mayor información, consulte la documentación FreeIPA para Sudo.\n" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -" Sudo Rule management\n" -" " -msgstr "" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Gestión de Reglas de Sudo" - -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" -msgstr "Regla Sudo" - -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" -msgstr "Categoría de comandos" - -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" -msgstr "Categoría de comandos la regla se aplica a" - -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" -msgstr "Ejecutar como categoría de usuarios" - -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" -msgstr "Ejecutar como categoría de usuario se aplica la regla a" - -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" -msgstr "Ejecutar como Categoría de grupo" - -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" -msgstr "Ejecutar como categoría de Grupo de la regla se aplica a" - -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" -msgstr "Comandos Allow de sudo" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" +msgstr "\nRoles\n\nUn rol sirve para la delegación de grano fino. Un permiso otorga la capacidad de realizar tareas de bajo nivel (añadir un usuario, modificar un grupo, etc.) Un privilegio combina uno o más permisos en una abstracción de nivel superior tal como useradmin. Un useradmin sería capaz de añadir, eliminar y modificar usuarios. \n\nLos privilegios son asignados a los roles.\n\nUsuarios, grupos, hosts y hostgroups pueden ser miembros de un Rol. \n\nLos roles no pueden contener otros roles. \n\nEJEMPLOS: \n\nAñadir un nuevo rol: \n ipa role-add --desc=\"Junior-level dmin\"junioradmin \nAñadir algunos privilegios a este rol:\n ipa role-add-privilege --privileges=addusers junioradmin\n ipa role-add-privilege \n --privileges=change_password junioradmin\n ipa role-add-privilege--\n privileges=add_user_to_default_group juioradmin\n\nAñadir un grupo de usuarios a este rol:\n ipa group-add --desc=\"User admins\" \n useradmins⏎ \n ipa role-add-member --groups=useradmins \n junioradmin\n\nMostrar información sobre el rol\n ipa role-show junioradmin\n\nEl resultado es que cualquier usuario en el grupo 'useradmins' puede añadir usuarios, establecer contraseñas y agregar un usuario al grupo de usuario de IPA predeterminado.\n\n" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" -msgstr "Comandos Deny de sudo" +#: ipalib/plugins/role.py:66 +msgid "role" +msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" -msgstr "Ejecutar como usuario" +#: ipalib/plugins/role.py:67 +msgid "roles" +msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" -msgstr "Ejecutar como Grupo" +#: ipalib/plugins/role.py:82 +msgid "Role" +msgstr "Rol" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" -msgstr "De usuarios externos" +#: ipalib/plugins/role.py:87 +msgid "Role name" +msgstr "Nombre de rol" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "De usuarios externos se aplica la regla a" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "Una descripción de este grupo de roles" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" -msgstr "RunAs de usuarios externos" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." +msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" -msgstr "Usuario externo los comandos se pueden ejecutar como" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Rol agregado \"%(value)s\"" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" -msgstr "Grupo externo RunAs" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." +msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" -msgstr "Grupo externo los comandos se pueden ejecutar como" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Rol eliminado \"%(value)s\"" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -"\n" -" Crear nueva regla de Sudo." -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "\"%(value)s\" de regla de sudo agregado" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Rol modificado \"%(value)s\"" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -"\n" -" Eliminar regla de Sudo." -#: ipalib/plugins/sudorule.py:197 -msgid "" -"\n" -" Modify Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "%(count)d rol coincidente" +msgstr[1] "%(count)d roles coincidentes" + +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -"\n" -" Modificar regla de Sudo." -#: ipalib/plugins/sudorule.py:205 -msgid "" -"\n" -" Search for Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -"\n" -" Buscar regla de Sudo." -#: ipalib/plugins/sudorule.py:213 -msgid "" -"\n" -" Display Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -"\n" -" Mostrar Regla Sudo.\n" -" " -#: ipalib/plugins/sudorule.py:221 -msgid "" -"\n" -" Enable a Sudo rule.\n" -" " +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -"\n" -" Habilitar una regla de Sudo." -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" +msgstr "Número de privilegios agregados" + +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -"\n" -" Desactivar una regla Sudo." -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" +msgstr "Número de privilegios eliminados" + +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " -msgstr "" +"Self-service Permissions\n" "\n" -" Añadir comandos y grupos de comandos de sudo afectados por sudo." - -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " -msgstr "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Eliminar comandos y grupos de comando sudo afectados por sudo." - -#: ipalib/plugins/sudorule.py:313 -msgid "" "\n" -" Add users and groups affected by Sudo Rule.\n" -" " -msgstr "" +"EXAMPLES:\n" "\n" -" Añadir usuarios y grupos afectados por sudo." - -#: ipalib/plugins/sudorule.py:349 -msgid "" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" "\n" -" Remove users and groups affected by Sudo Rule.\n" -" " -msgstr "" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" "\n" -" Eliminar usuarios y grupos afectados por sudo." - -#: ipalib/plugins/sudorule.py:383 -msgid "" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" "\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" +msgstr "\nPermisos de autoservicio\n\nUn permiso permite la delegación de grano fino de permisos. \n\nLas reglas o instrucciones (ACI), conceden el permiso para realizar tareas, tales como, agregar un usuario, modificar un grupo, etc. \nUn permiso de autoservicio define lo que un objeto puede cambiar en su propia entrada. \n\n\nEJEMPLOS:\n\nAgregar una regla de auto-servicio para permitir a los usuarios administrar su dirección: \n ipa selfservice-add --permissions=write \n--attrs=street,postalCode,l,c,st \"Users manage their own address\n\nAl administrar la lista de atributos necesita incluir todos los atributos de la lista, incluyendo los ya existentes. Añadir telephoneNumber a la lista:\n\"Users manage their own address\"\nMostrar una regla actualizada:\n ipa selfservice-show \"Users manage their own address\"\n\nBorrar una regla:\n ipa selfservice-del \"Users manage their own address\" \n" + +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" +msgstr "No se encontró permiso de autoservicio ' %(permission)s' " + +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -"\n" -" Añadir anfitriones y grupos de host afectados por sudo." -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -"\n" -" Eliminar hosts y grupos de hosts afectador por regla de sudo." -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" +msgstr "Permisos de autoservicio" + +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -"\n" -" Añadir usuario para que se ejecute como sudo" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" +msgstr "Auto-servicio de nombres" + +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -"\n" -" Eliminar usuario para que se ejecute como sudo." -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" +msgstr "Añadido autoservicio \"%(value)s\"" + +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -"\n" -" Añadir grupo para que se ejecute como sudo." -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "autoservicio eliminados \"%(value)s\"" + +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -"\n" -" Eliminar grupo para que se ejecute como sudo." -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" +msgstr "Autoservicio modificado \"%(value)s\"" + +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -"\n" -" Añadir opción a la regla de sudo." -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" -msgstr "Opción de sudo" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "%(count)d autoservicio coincidente" +msgstr[1] "%(count)d autoservicios coincidentes" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -"\n" -" Eliminar una opción de la regla de sudo." -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" -"\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +"Services\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Usuarios\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" "\n" -"Administrar entradas de usuarios. Todos los usuarios son usuarios de POSIX.\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" -"IPA soporta un amplio rango de formatos de nombre de usuario, pero usted necesita estar pendiente de las\n" -"restricciones que se aplican a su entorno. Por ejemplo,\n" -"los nombres de usuario que comienzan por un dígito o nombres de usuarios que exceden en longitud\n" -"pueden ocasionar problemas a algunos sistemas UNIX.\n" -"Use 'ipa config-mod' para cambiar el formato de nombre de usuario permitido por herramientas de IPA.\n" +"EXAMPLES:\n" "\n" -"Al inhabilitar una cuenta de usuario evita que el usuario obtenga nuevas credenciales de Kerberos.\n" -"No invalida ninguna credencial que ya haya sido\n" -"expedida.\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -"El manejo de contraseña no es una parte de este módulo. Para obtener mayor información sobre este tópico\n" -"por favor, consulte: ipa help passwd\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -"EJEMPLOS:\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Añada un nuevo usuario:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Busque todos los usuarios cuyas entradas incluyan la cadena \"Tim\":\n" -" ipa user-find Tim\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Busque todos los usuarios con \"Tim\" como nombre:\n" -" ipa user-find --first=Tim\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" "\n" -" Inhabilite una cuenta de usuario:\n" -" ipa user-disable tuser1\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" "\n" -" Habilite una cuenta de usuario:\n" -" ipa user-enable tuser1\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Borre un usuario:\n" -" ipa user-del tuser1\n" +msgstr "\nServicios\n\nUn servicio IPA es un servicio que se ejecuta en un host. El servicio de registro IPA puede almacenar un principal de Kerberos, un certificado SSL, o ambos.\n\nUn servicio IPA puede ser adminstrado directamente desde una máquina, siempre y cuando las máquinas tengarn el permiso correcto. \n\nEsto es cierto incluso para máquinas diferentes con la que se asocia el servicio. Por ejemplo,\nsolicitando un certificado SSL mediante las credenciales del principal de servicio de host necesita autenticarse con kinit como el host:\n# kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n\nAñadir un servicio de IPA le permite al servicio solicitar un certificado o tabla de claves SSL, pero se realiza como un paso separado: no se produce como resultado de adicionar el servicio.\n\nSolamente el aspecto público de un certificado se almacena en un registro de servicio; la clave privada no se almacena.\n\nEJEMPLOS:\n\nAñadir un nuevo servicio IPA:\n ipa service-add HTTP/web.example.com\n\nPermitir a un host administrar un certificado de servicio IPA:\n ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n ipa role-add-member --hosts=web.example.com certadmin\n\nBorrar un servicio IPA:\n ipa service-del HTTP/web.example.com\n\nBuscar todos los servicios IPA asociados con el host:\n ipa service-find web.example.com\n\nEncontrar todos los servicio HTTP:\n ipa service-find HTTP\n\n Disable the service Kerberos key and SSL certificate:\n ipa service-disable HTTP/web.example.com\n\nSolicitar un certificado para un servicio IPA:\n ipa cert-request --principal=HTTP/web.example.com example.csr\n\n Generar y recuperar una tabla de claves para un servicio IPA:\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n\n" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -"\n" -" Objeto de usuario." - -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "Ingreso de usuario" -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "Nombre" - -#: ipalib/plugins/user.py:127 -msgid "Last name" -msgstr "Apellido" - -#: ipalib/plugins/user.py:130 -msgid "Full name" -msgstr "Nombre y apellidos" - -#: ipalib/plugins/user.py:135 -msgid "Display name" -msgstr "Mostrar nombre" - -#: ipalib/plugins/user.py:140 -msgid "Initials" -msgstr "Iniciales" +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" -msgstr "Directorio principal" +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr " Búsqueda de servicios IPA" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" -msgstr "Campo GECOS" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" -msgstr "Shell de ingreso" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Ha sido agregado el servicio \"%(value)s\"" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" -msgstr "Principal kerberos" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "fuerza el nombre del prinicpal, aún si no se encuentra en DNS" -#: ipalib/plugins/user.py:168 -msgid "Email address" -msgstr "Dirección de correo electrónico" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" -msgstr "Solicita establecer la contraseña de usuario" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Ha sido eliminado el servicio \"%(value)s\"" -#: ipalib/plugins/user.py:180 -msgid "UID" -msgstr "UID" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." +msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Ha sido modificado el servicio \"%(value)s\"" + +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -"Número de ID de usuario (el sistema le asignará uno si no se indica ninguno)" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" -msgstr "Número de Identificación de Grupo" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "%(count)d servicio coincidente" +msgstr[1] "%(count)d servicios coincidentes\t\t\t" -#: ipalib/plugins/user.py:193 -msgid "Street address" -msgstr "Dirección postal" +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." +msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" -msgstr "Ciudad" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." +msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" -msgstr "Estado / Provincia" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." +msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" -msgstr "Zona " +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" -msgstr "Número de teléfono" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Servicio inhabilitado \"%(value)s\"" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" -msgstr "Número de teléfono celular" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" +msgstr "\nComandos de Sudo\n\nComandos usados como partes integrantes de sudo\n\nEJEMPLOS:\n\n Crear un comando nuevo\n ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n\n Eliminar un comando\n ipa sudocmd-del /usr/bin/less\n\n" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" -msgstr "Número de página" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" +msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" -msgstr "Número de fx" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" +msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" -msgstr "Unidad. org" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" +msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" -msgstr "Cargo" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" +msgstr "Comandos de sudo" -#: ipalib/plugins/user.py:228 -msgid "Manager" -msgstr "Manager" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" +msgstr "Comando sudo " -#: ipalib/plugins/user.py:231 -msgid "Car License" -msgstr "Licencia de conducción" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" +msgstr "Una descripción de este comando " -#: ipalib/plugins/user.py:234 -msgid "Account disabled" -msgstr "Cuenta inhabilitada " +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." +msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -"\n" -" Dado un id de usuario verifica la existencia de dicho usuario y devuelve el dn.\n" -" " -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" -msgstr "Administrador %(manager)s no encontrado" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." +msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -"\n" -" Convertir un dn de administrador en userid \n" -" " -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -"\n" -" Añadir un nuevo usuario" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "Ha sido agregado el usuario \"%(value)s\"" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" -msgstr "No crear grupo privado de usuario" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." +msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" -msgstr "puede ser a lo sumo%(len)d caracteres" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -"\n" -" Eliminar usuario." - -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "Ha sido eliminado el usuario \"%(value)s\"" -#: ipalib/plugins/user.py:413 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" Modify a user.\n" -" " -msgstr "" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" "\n" -" Modificar un usuario." +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" +msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "Ha sido modificado el usuario \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" +msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -"\n" -" Buscar usuarios." -#: ipalib/plugins/user.py:444 -msgid "Self" -msgstr "Self" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" +msgstr "Grupo de comando sudo" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" -msgstr "Muestra el registro del usuario para el principal de Kerberos actual" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." +msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "%(count)d usuario coincidente" -msgstr[1] "%(count)d usuarios coincidentes" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -"\n" -" Mostrar información sobre un usuario." -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -"\n" -" Inhabilitar una cuenta de usuario." -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" -msgstr "\"%(value)s\" de cuenta de usuario desactivada" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." +msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -"\n" -" Habilitar una cuenta de usuario." -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" -msgstr "\"%(value)s\" de cuenta de usuario activada" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." +msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -"\n" -" Desbloquear una cuenta de usuario\n" -"\n" -" Una cuenta puede ser bloqueada si se ingresa la contraseña incorrecta demasiadas\n" -" veces en un período de tiempo específico según lo controlado por la directiva de contraseñas.\n" -" Una cuenta bloqueada es una condición temporal y puede ser desbloqueada\n" -" por un administrador.\n" -" " -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" -msgstr "Cuenta desbloqueada \" %(value)s \"" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." +msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -"\n" -"Base de clases para los complementos backend no LDAP.\n" -#: ipalib/plugins/virtual.py:28 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" +"Sudo Rules\n" "\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"commands and their arguments.\n" "\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " -msgstr "" +"FreeIPA provides a means to configure the various aspects of Sudo:\n" +" Users: The user(s)/group(s) allowed to envoke 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" "\n" -" Un comando que no utiliza el backend LDAP, pero que quiere utilizar el sistema de control de acceso \n" -" LDAP para tomar decisiones de autorización. \n" -" La operación variable de clase es el atributo commonName de \n" -"la\n" -" entrada con la que se prueba.\n" -" De antemano, es necesario crear una entrada de la forma: \n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"Ejemplo.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" \n" -" " - -#: ipalib/plugins/virtual.py:44 -msgid "" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" "\n" -" Perform an LDAP query to determine authorization.\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" "\n" -" This should be executed before any actual work is done.\n" -" " +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -"\n" -" Realizar una consulta LDAP para determinar la autorización. \n" -" Esto debe ser ejecutado antes de que el trabajo real se realice." -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -"\n" -"Complemento de cliente XML-RPC.\n" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Ingrese %(label)s nuevamente para verificar: " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." +msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "¡Las contraseñas no coinciden!" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" +msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "Cancelado." +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" +msgstr "" + +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" -msgstr "Nombre del comando" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" +msgstr "Regla Sudo" -#: ipalib/cli.py:1117 -msgid "No file to read" -msgstr "No existe el fichero para leer" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "Categoría de comandos" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" +msgstr "Categoría de comandos la regla se aplica a" + +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -"el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "error %(code)d desconocido de %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" +msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "ha ocurrido un error interno" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" +msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "ha ocurrido un error interno en el servidor en %(server)r" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" +msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "comando desconocido %(name)r" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" +msgstr "Comandos Allow de sudo" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" -msgstr "error en el servidor %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" +msgstr "Comandos Deny de sudo" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "no es posible conectar con %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" +msgstr "" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Petición JSON-RPC no válida: %(error)s" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" +msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -"error de clasificación para el transporte de datos XML-RPC: %(error)s " -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Error de kerberos: %(major)s/%(minor)s" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" +msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" -msgstr "no se ha recibido ninguna credencial de Kerberos" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" +msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -"El servicio %(service)r no se ha encontrado en la base de datos Kerberos" -#: ipalib/errors.py:514 -msgid "No credentials cache found" -msgstr "No se han encontrado credenciales de cache" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" +msgstr "De usuarios externos" -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "El ticket ha expirado" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" +msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" -msgstr "Los permisos de credenciales de caché son incorrectos" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" +msgstr "RunAs de usuarios externos" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" -msgstr "Las credenciales de caché están mal formadas" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" -msgstr "No es posible resolver KDC para el reinado solicitado" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "Grupo externo RunAs" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Acceso insuficiente: %(info)s" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "el comando %(name)r no tiene argumentos" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" +msgstr "Opción de sudo" -#: ipalib/errors.py:661 -#, 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] "el comando %(name)r lleva al menos %(count)d argumento" -msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" -msgstr "superponiendo argumentos y opciones: %(names)r" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" +msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "%(name)r es necesario" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." +msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "%(name)r inválido: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." +msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "api has no such namespace: %(name)r" -msgstr "api no posee tal nombre de espacio: %(name)r" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "Las contraseñas no coinciden" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "El comando no se ha implementado" +#: ipalib/plugins/sudorule.py:234 +#, python-format +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -"El cliente no está configurado. Ejecutar ipa-client-install." -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "%(reason)s" -msgstr "%(reason)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "Esta entrada ya existe" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" -msgstr "Debe registrar el equipo para poder generar un servicio de host" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." +msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -"El servicio principal no tiene la forma de servicio/nombre de equipo " -"totalmente calificado: %(reason)s" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -"El reinado para el principal no coincide con el reinado para este servidor " -"IPA" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "Este comando necesita acceso de usuario root" - -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "Este ya es un grupo posix" - -#: ipalib/errors.py:922 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" -msgstr "El principal no tiene la forma usuario@REINADO: %(principal)r" - -#: ipalib/errors.py:938 -msgid "This entry is already enabled" -msgstr "Esta entrada ya está habilitada" +msgid "Disabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" -msgstr "Esta entrada ya está desactivada" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" -msgstr "Esta entrada no puede ser activada o desactivada" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" -msgstr "Esta entrada no es miembro" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "Un grupo no puede ser miembro de sí mismo" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" -msgstr "Esta entrada ya es un miembro" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Falló la decodificación base64: %(reason)s" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" -msgstr "Un grupo no puede ser agregado como miembro de sí mismo" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" -msgstr "El grupo de usuarios predeterminado no puede ser eliminado" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" -msgstr "El equipo no posee un registro DNS A con el que se corresponda " +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -"No se permite eliminar un grupo administrado. Primero debe ser desasociado. " -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." -msgstr "Un grupo administrado no puede tener una política de contraseñas." +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "" -#: ipalib/errors.py:1160 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "'%(entry)s' no tiene certificado" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -"No se puede crear un grupo privado. Un grupo de '%(group)s' ya existe." -#: ipalib/errors.py:1192 +#: ipalib/plugins/sudorule.py:710 #, python-format +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/user.py:29 msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" +msgstr "\n\\n\nUsuarios\\n\n\\n\nAdministrar entradas de usuarios. Todos los usuarios son usuarios de POSIX.\\n\n\\n\nIPA soporta un amplio rango de formatos de nombre de usuario, pero usted necesita estar pendiente de las\\n\nrestricciones que se aplican a su entorno. Por ejemplo,\\n\nlos nombres de usuario que comienzan por un dígito o nombres de usuarios que exceden en longitud\\n\npueden ocasionar problemas a algunos sistemas UNIX.\\n\nUse 'ipa config-mod' para cambiar el formato de nombre de usuario permitido por herramientas de IPA.\\n\n\\n\nAl inhabilitar una cuenta de usuario evita que el usuario obtenga nuevas credenciales de Kerberos.\\n\nNo invalida ninguna credencial que ya haya sido\\n\nexpedida.\\n\n\\n\nEl manejo de contraseña no es una parte de este módulo. Para obtener mayor información sobre este tópico\\n\npor favor, consulte: ipa help passwd\\n\n\\n\nEJEMPLOS:\\n\n\\n\n Añada un nuevo usuario:\\n\n ipa user-add --first=Tim --last=User --password tuser1\\n\n\\n\n Busque todos los usuarios cuyas entradas incluyan la cadena \\\"Tim\\\":\\n\n ipa user-find Tim\\n\n\\n\n Busque todos los usuarios con \\\"Tim\\\" como nombre:\\n\n ipa user-find --first=Tim\\n\n\\n\n Inhabilite una cuenta de usuario:\\n\n ipa user-disable tuser1\\n\n\\n\n Habilite una cuenta de usuario:\\n\n ipa user-enable tuser1\\n\n\\n\n Borre un usuario:\\n\n ipa user-del tuser1\\n\n" + +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -"Se encontró un problema al verificar si todos los miembros eran %(verb)s: " -"%(exc)s" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" -msgstr "no existe un comando para el tópico de ayuda %(topic)r" +#: ipalib/plugins/user.py:140 +msgid "user" +msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "la modificación choca con otra modificación diferente" +#: ipalib/plugins/user.py:141 +msgid "users" +msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" -msgstr "no existen modificaciones a ser realizadas" +#: ipalib/plugins/user.py:177 +msgid "User login" +msgstr "Ingreso de usuario" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:184 +msgid "First name" +msgstr "Nombre" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" -msgstr "han sido excedidos los límites para esta consulta" +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "Apellido" + +#: ipalib/plugins/user.py:191 +msgid "Full name" +msgstr "Nombre y apellidos" + +#: ipalib/plugins/user.py:196 +msgid "Display name" +msgstr "Mostrar nombre" + +#: ipalib/plugins/user.py:201 +msgid "Initials" +msgstr "Iniciales" + +#: ipalib/plugins/user.py:207 +msgid "Home directory" +msgstr "Directorio principal" + +#: ipalib/plugins/user.py:212 +msgid "GECOS field" +msgstr "Campo GECOS" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:218 +msgid "Login shell" +msgstr "Shell de ingreso" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" -msgstr "modificar la clave principal no está permitido" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" +msgstr "Principal kerberos" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s : Solamente un valor permitido." +#: ipalib/plugins/user.py:231 +msgid "Email address" +msgstr "Dirección de correo electrónico" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s: sintaxis inválida." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "Solicita establecer la contraseña de usuario" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" -msgstr "%(info)s de filtro de búsqueda errado" +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "UID" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "La operación certificada no puede ser completada: %(error)s" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" +msgstr "Número de ID de usuario (el sistema le asignará uno si no se indica ninguno)" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Error de certificado de formato: %(error)s " +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" +msgstr "Número de Identificación de Grupo" -#: ipalib/errors.py:1458 -msgid "Already registered" -msgstr "Ya está registrado" +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "Dirección postal" -#: ipalib/errors.py:1474 -msgid "Not registered yet" -msgstr "Aún no está registrado" +#: ipalib/plugins/user.py:261 +msgid "City" +msgstr "Ciudad" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "" -"Los resultados se encuentran truncados, intente realizar una búsqueda más " -"específica" +#: ipalib/plugins/user.py:265 +msgid "State/Province" +msgstr "Estado / Provincia" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" -"Recuperar e imprimir todos los atributos del servidor. Afecta a la salida " -"del comando." +#: ipalib/plugins/user.py:268 +msgid "ZIP" +msgstr "Zona " -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" -"Imprimir entradas como almacenadas en el servidor. Solamente afecta formato " -"de salida." +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" +msgstr "Número de teléfono" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" -msgstr "Reenvía al servidor en lugar de ejecutarse localmente" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "Número de teléfono celular" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" -msgstr "Un diccionario representando una entrada LDAP" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" +msgstr "Número de página" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" -msgstr "Una lista de entradas LDAP" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" +msgstr "Número de fx" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" -msgstr "Todos los comandos deberían por lo menos tener un resultado" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" +msgstr "Unidad. org" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "tipo incorrecto" +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "Cargo" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "Sólo se permite un valor" +#: ipalib/plugins/user.py:292 +msgid "Manager" +msgstr "Manager" -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "debe ser True o False" +#: ipalib/plugins/user.py:295 +msgid "Car License" +msgstr "Licencia de conducción" -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "debe ser un entero" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" +msgstr "Cuenta inhabilitada " -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:340 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "debe ser como mínimo %(minvalue)d" +msgid "manager %(manager)s not found" +msgstr "Administrador %(manager)s no encontrado" + +#: ipalib/plugins/user.py:359 +msgid "Add a new user." +msgstr "" -#: ipalib/parameters.py:1064 +#: ipalib/plugins/user.py:361 #, python-format -msgid "can be at most %(maxvalue)d" -msgstr "puede ser como máximo %(maxvalue)d" +msgid "Added user \"%(value)s\"" +msgstr "Ha sido agregado el usuario \"%(value)s\"" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "debe ser un número decimal" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" +msgstr "No crear grupo privado de usuario" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:398 #, python-format -msgid "must be at least %(minvalue)f" -msgstr "debe ser como mínimo %(minvalue)f" +msgid "can be at most %(len)d characters" +msgstr "puede ser a lo sumo%(len)d caracteres" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" -msgstr "puede ser como máximo %(maxvalue)f" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." +msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:477 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "debe coincidir con el modelo \"%(pattern)s" +msgid "Deleted user \"%(value)s\"" +msgstr "Ha sido eliminado el usuario \"%(value)s\"" -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "debe ser un dato binario" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." +msgstr "" -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:488 #, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "debe ser como mínimo de %(minlength)d bytes" +msgid "Modified user \"%(value)s\"" +msgstr "Ha sido modificado el usuario \"%(value)s\"" -#: ipalib/parameters.py:1218 -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "puede ser a lo sumo de %(maxlength)d bytes" +#: ipalib/plugins/user.py:510 +msgid "Search for users." +msgstr "" -#: ipalib/parameters.py:1228 -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "debe ser exactamente de %(length)d bytes" +#: ipalib/plugins/user.py:517 +msgid "Self" +msgstr "Self" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "debe ser texto Unicode" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" +msgstr "Muestra el registro del usuario para el principal de Kerberos actual" -#: ipalib/parameters.py:1277 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minlength)d characters" -msgstr "debe tener como mínimo %(minlength)d caracteres" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d usuario coincidente" +msgstr[1] "%(count)d usuarios coincidentes" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "puede tener a lo sumo %(maxlength)d caracteres" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" + +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "" -#: ipalib/parameters.py:1297 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be exactly %(length)d characters" -msgstr "debe tener exactamente %(length)d caracteres" +msgid "Disabled user account \"%(value)s\"" +msgstr " \"%(value)s\" de cuenta de usuario desactivada" + +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." +msgstr "" -#: ipalib/parameters.py:1315 +#: ipalib/plugins/user.py:585 #, python-format -msgid "The character '%(char)r' is not allowed." -msgstr "El carácter '%(char)r' no está permitido." +msgid "Enabled user account \"%(value)s\"" +msgstr " \"%(value)s\" de cuenta de usuario activada" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." +msgstr "" -#: ipalib/parameters.py:1355 +#: ipalib/plugins/user.py:611 #, python-format -msgid "must be one of %(values)r" -msgstr "debe ser uno de %(values)r" +msgid "Unlocked account \"%(value)s\"" +msgstr "Cuenta desbloqueada \" %(value)s \"" -#: ipalib/util.py:200 +#: ipalib/util.py:192 #, python-format msgid "Permission denied: %(file)s" -msgstr "Permiso denegado: %(file)s " +msgstr "Permiso denegado:%(file)s " + +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" + +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "" + +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "" + +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "" + +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" +msgstr "" -#: ipalib/x509.py:174 +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "" + +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" +msgstr "" + +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "Emisor \"%(issuer)s\" no coincide con el emisor esperado " -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "No es posible comunicarse con CMS (%s)" @@ -9002,14 +7291,17 @@ msgstr "Plataforma de hardware del equipo (p. ej. Lenovo T61)" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "Sistema operativo que utiliza el equipo y versión (p.ej. Fedora 9)" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form " "\"%(subject_base)s\"" -msgstr "" -"El asunto solicitado \"%(request_subject)s\" no coincide con la forma " -"\"%(subject_base)s\"" +msgstr "El asunto solicitado \"%(request_subject)s\" no coincide con la forma \"%(subject_base)s\"" #: ipaserver/plugins/selfsign.py:104 #, python-format @@ -9028,558 +7320,546 @@ msgstr "no es posible obtener el próximo número de serie" msgid "certutil failure" msgstr "falla de Certutil" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" -msgstr "no se puede abrir archivo de configuración %s\n" +msgstr "no se puede abrir archivo de configuración %s\\n\n" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" -msgstr "no puede stat() del archivo de configuración %s\n" +msgstr "no puede stat () del archivo de configuración%s\n" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "sin Memoria\n" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "Error de lectura\n" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" -msgstr "Inicio de contexto de kerberos falló\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" +msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "¿Ningún sistema enctypes preferido?\n" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" -msgstr "" -"¡Memoria insuficiente!\n" -"\n" +msgstr "¡Memoria insuficiente!\n\n" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "¡Memoria insuficiente!\n" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" -msgstr "Advertencia no se reconoce el tipo de cifrado: [%s]\n" +msgstr "Advertencia no se reconoce el tipo de cifrado: [%s\n" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "Advertencia no se reconoce el tipo salt: [%s]\n" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "¡Falló comparación de Enctype!\n" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "Falló la creación de clave aleatoria\n" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "¡Falló la creación de clave!\n" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "¡Memoria insuficiente!\n" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" -msgstr "¡Tipo (%d) salt no compatible o dañado!\n" +msgstr "¡Tipo (%d)salt no compatible o dañado!\n" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "No hay claves aceptadas por KDC\n" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "¡Memoria insuficiente!\n" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "¡Memoria insuficiente!\n" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "¡Falló crear control!\n" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" -msgstr "¡No puede iniciar biblioteca LDAP!\n" +msgstr "¡No puede iniciar biblioteca IDAP!\n" + +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" -msgstr "¡No puede establecer opciones LDAP!\n" +msgstr "¡No puede establecer opciones IDAP!\n" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "¡Falló vinculación sencilla!\n" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "¡Falló vinculación SASL!\n" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "¡Falló operación! %s\n" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "¡Falta control de respuesta!\n" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "Falló ber_init(), ¿control inválido?\n" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "ber_scanf () falló, ¿control no válido?\n" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "Nueva contraseña principal" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "Verificar contraseña principal" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "Imprimir lo mínimo posible" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "Solamente salida sobre errores" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "Contactar este servidor KDC específico" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "Nombre de servidor" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" -"La principal para obtener una tabla de claves para (ex: " -"ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "La principal para obtener una tabla de claves para (ex: ftp/ftp.example.com@EXAMPLE.COM)" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "Nombre principal del servicio de kerberos" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "Archivo para almacenar la información de tabla de claves" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "Nombre de archivo de tabla de claves" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "Solicitud de tipos de cifrado" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "Lista de tipos de cifrado separados por coma" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "Mostrar la lista de los tipos cifrados permitidos y salir" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "Tipos de cifrado permitidos" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "Pregunta por una contraseña no aleatoria para la principal" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "LDAP DN" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "DN a vincular como si no usara kerberos" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "Contraseña LDAP" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "Contraseña a usar si no usa kerberos" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "Inicio de contexto de kerberos falló\n" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "Tipos de cifrado suportado\n" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" -msgstr "Advertencia: Tipo para convertir falló (#%d)\n" +msgstr "Advertencia: Tipo para convertir falló (#%d)⏎\n" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "Vincular contraseña requerida mediante un enlace DN.\n" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" -msgstr "" -"Advertencia: tipos salt no se aceptan con contraseñas aleatorias (ver opt. " -"-P)\n" +msgstr "Advertencia: tipos salt no se aceptan con contraseñas aleatorias (ver opt.\n" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "Nombre de servicio principal inválido\n" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "" -"No se encontró la cache de credencial kerberos. ¿Tiene un tiquete de " -"kerberos?\n" +msgstr "No se encontró la cache de credencial kerberos. ¿Tiene un tiquete de kerberos?\n" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "" -"No se encontró usuario principal de kerberos. ¿Tiene una cache de " -"credencial válida?\n" +msgstr "No se encontró usuario principal de kerberos. ¿Tiene una cache de credencial válida?\n" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "Fallo abrir clave de tablas.\n" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "Error al crear el material de clave\n" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "No se pudo agregar clave de la tabla de claves\n" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "No se pudo cerrar la tabla de claves\n" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "Tabla de claves recuperada y almacenada correctamente en: %s\n" +msgstr "Tabla de claves recuperada y almacenada correctamente en:%s\n" #: ipa-client/ipa-join.c:65 #, c-format msgid "No permission to join this host to the IPA domain.\n" -msgstr "No tiene permiso para vincular este equipo al dominio de la IPA.\n" +msgstr "No tiene permiso para vincular este equipo al dominio de la API.\n" #: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106 #, c-format msgid "No write permissions on keytab file '%s'\n" -msgstr "No escribir permisos en archivo de tabla de claves '%s'\n" +msgstr "No escribir permisos en archivo de tabla de claves'%s\n" #: ipa-client/ipa-join.c:111 #, c-format msgid "access() on %s failed: errno = %d\n" -msgstr "access() en %s ha fallado: errno = %d\n" +msgstr "acceso () en %s ha fallado: errno =%d\n" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "¡Memoria insuficiente!" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" -msgstr "No se puede iniciar con servidor LDAP: %s" +msgstr "No se puede iniciar con servidor IDAP:%s" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "No se puede habilitar SSL en LDAP\n" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "No se puede establecer la versión de LDAP\n" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" -msgstr "Falló enlace: %s\n" +msgstr "Falló enlace:%s\n" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "Búsqueda %s en rootdse con error %d" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "No hay valores para %s" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "Búsqueda de ipaCertificateSubjectBase falló con error %d" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" -msgstr "No se puede determinar DN de root de %s\n" +msgid "Search for IPA namingContext failed with error %d\n" +msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" -msgstr "No se puede determinar asunto del certificado de %s\n" +msgid "IPA namingContext not found\n" +msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" -msgstr "No se puede establecer una conexión LDAP para %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" +msgstr "Búsqueda de ipaCertificateSubjectBase falló con error %d" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" -msgstr "Búsqueda con %s en %s\n" +msgid "Unable to determine root DN of %s\n" +msgstr "No se puede determinar DN de root de%s\n" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" -msgstr "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" +msgstr "Contraseña incorrecta.\n" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" -msgstr "No se puede encontrar '%s' de host\n" +msgid "Unable to determine certificate subject of %s\n" +msgstr "No se puede determinar asunto del certificado de%s\n" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" -msgstr "No se puede obtener binddn para '%s' de host\n" +msgid "Enrollment failed. %s\n" +msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" -msgstr "Host ya tiene principal, tratando de vincular de todas maneras\n" +msgid "principal not found in XML-RPC response\n" +msgstr "principales no se encuentran en respuesta XML-RPC\n" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "Host ya está vinculado\n" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "Contraseña incorrecta.\n" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "principales no se encuentran en la entrada de host\n" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "principales no se encuentran en respuesta XML-RPC\n" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" -msgstr "No se puede determinar servidor de la IPA de %s\n" +msgstr "No se puede determinar servidor de la IPA de%s\n" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" -msgstr "El nombre de host debe ser totalmente calificado: %s\n" +msgstr "El nombre de host debe ser totalmente calificado:%s\n" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" -msgstr "" -"No se puede unir host: la inicialización de contexto de Kerberos falló\n" +msgstr "No se puede unir host: la inicialización de contexto de Kerberos falló\n" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" -msgstr "Error al resolver tabla de claves: %s.\n" +msgstr "Error al resolver tabla de claves:%s.\n" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" -msgstr "Error al obtener el dominio predeterminado Kerberos: %s.\n" +msgstr "Error al obtener el dominio predeterminado Kerberos:%s.\n" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" -msgstr "Error al analizar \"%s\": %s.\n" +msgstr "Error al analizar \"%s\":%s.\n" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" -msgstr "Error al obtener credenciales de iniciales: %s.\n" +msgstr "Error al obtener credenciales de iniciales:%s.\n" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "No se puede generar la cache de credenciales de Kerberos\n" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" -msgstr "Error de almacenamiento de credenciales en cache de credenciales: %s.\n" +msgstr "Error de almacenamiento de credenciales en cache de credenciales:%s.\n" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "Cancelación de registro exitoso.\n" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "Cancelación falló.\n" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "resultado no se encuentra en respuesta XML-RPC\n" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" -msgstr "" -"No se puede unir host: cache de credenciales de Kerberos no se encuentra\n" +msgstr "No se puede unir host: cache de credenciales de Kerberos no se encuentra\n" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" -msgstr "" -"No se puede unir host: principal de usuario no se encuentra y contraseña " -"de host no se proporciona.\n" +msgstr "No se puede unir host: principal de usuario no se encuentra y contraseña de host no se proporciona.\n" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" -msgstr "fork() falló\n" +msgstr "bifurcación () falló\n" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "ipa-getkeytab no se encuentra\n" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "¿Tiene ipa-getkeytab permisos errados?\n" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "la ejecución de ipa-getkeytab falló, errno %d\n" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "hijo terminó con %d\n" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" -msgstr "Asunto de certificado es: %s\n" +msgstr "Asunto de certificado es:%s\n" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "Imprimir la salida cruda de XML-RPC en modo de GSSAPI" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "Modo silencioso. Sólo se muestran los errores." -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "Cancelar registro de host de servidor IPA" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "Nombre de host de este servidor" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "nombre de host" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "Servidor de IPA a utilizar" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "Especifica dónde almacenar la información de tabla de claves." -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "nombre de archivo" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "contraseña de LDAP (si no usa Kerberos)" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "contraseña" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -9659,7 +7939,7 @@ msgstr "Nombre de reino " #: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237 #, c-format msgid "Failed to open keytab '%s': %s\n" -msgstr "Falló al abrir de tabla de claves '%s': %s'\n" +msgstr "Falló al abrir de tabla de claves '%s':%s'\n" #: ipa-client/ipa-rmkeytab.c:253 #, c-format diff --git a/install/po/fa.po b/install/po/fa.po index ae6d6795f..bc5642b47 100644 --- a/install/po/fa.po +++ b/install/po/fa.po @@ -2,7122 +2,7246 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" -"Language-Team: Persian (http://www.transifex.net/projects/p/fedora/team/fa/)\n" +"Language-Team: Persian (http://www.transifex.net/projects/p/fedora/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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] "" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" + +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" +"\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:80 +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -" IPA configuration object\n" -" " +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:431 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Delete DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:439 -msgid "" +"IPA certificate operations\n" "\n" -" Modify DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:452 -msgid "" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Search for DNS zones (SOA records).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:460 -msgid "" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" +"\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:215 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:286 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:479 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:724 +msgid "SOA class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1259 +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/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" - -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" -msgstr "" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/kerberos.py:79 +#: ipalib/plugins/internal.py:147 msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" +msgstr "" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:239 +msgid "Settings" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" PKINIT Options\n" -" " +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" - -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 -msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/internal.py:344 +msgid "Any Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/internal.py:346 +msgid "Accessing" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/role.py:20 -msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" + +#: ipalib/plugins/internal.py:494 +msgid "" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "" + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" + +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "" + +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" + +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "" + +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "" + +#: ipalib/plugins/internal.py:513 +msgid "undo" +msgstr "" + +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" + +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" +msgstr "" + +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "" + +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "" + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." +msgstr "" + +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "" + +#: ipalib/plugins/migration.py:255 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "" + +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "" + +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "" + +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "" + +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "" + +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" +msgstr "" + +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" +msgstr "" + +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" +msgstr "" + +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" + +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" +msgstr "" + +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" + +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "" + +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" + +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" + +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" + +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "" + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "" + +#: ipalib/plugins/migration.py:448 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "" + +#: ipalib/plugins/misc.py:25 +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" + +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "" + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Netgroups\n" "\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:181 +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Search for a self-service permission.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" + +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Services\n" +"Permissions\n" "\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A permission may not contain other permissions.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"A permission is made up of a number of different parts:\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" +"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\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" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "" + +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "" + +#: ipalib/plugins/permission.py:94 +msgid "permission" +msgstr "" + +#: ipalib/plugins/permission.py:95 +msgid "permissions" +msgstr "" + +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "" + +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "" + +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "" + +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "" + +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "" + +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." +msgstr "" + +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 +msgid "" +"\n" +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." +msgstr "" + +#: ipalib/plugins/pkinit.py:25 +msgid "" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"Kerberos pkinit options\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +"EXAMPLES:\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" "\n" -" entry_attrs is a dict of an entry\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" returns nothing\n" -" " +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" +"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" +"\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Roles\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Privileges are assigned to Roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -" Sudo Rule management\n" -" " +"Roles can not contain other roles.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" +"\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" User object.\n" -" " msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:295 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" Add a new user.\n" -" " +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" msgstr[0] "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:507 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Enable a user account.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:641 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "command %(name)r takes no arguments" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:661 +#: ipalib/plugins/sudorule.py:226 #, 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] "" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "overlapping arguments and options: %(names)r" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:707 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "%(name)r is required" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "invalid %(name)r: %(error)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "api has no such namespace: %(name)r" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:922 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:488 #, python-format -msgid "must be at least %(minvalue)d" +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1097 -#, python-format -msgid "must be at least %(minvalue)f" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1107 +#: ipalib/plugins/user.py:539 #, python-format -msgid "can be at most %(maxvalue)f" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" + +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" + +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must match pattern \"%(pattern)s\"" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1192 -msgid "must be binary data" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must be at least %(minlength)d bytes" +msgid "Enabled user account \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7138,6 +7262,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7162,283 +7291,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7458,248 +7601,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7790,5 +7921,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/fr.po b/install/po/fr.po index 37eeb0776..a76a1b5cf 100644 --- a/install/po/fr.po +++ b/install/po/fr.po @@ -2,14 +2,17 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Automatically generated, 2010. +# Jérôme Fenal , 2011, 2012. +# , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" -"Last-Translator: jdennis \n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-20 13:00+0000\n" +"Last-Translator: Jérôme Fenal \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,7145 +20,7278 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" -msgstr "" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Entrer à nouveau %(label)s pour validation : " -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" -msgstr "" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Les mots de passe ne correspondent pas !" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "" +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Annulé." -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " -msgstr "" +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" +msgstr "Objectif : %s" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " -msgstr "" +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." +msgstr "Utilisation : ipa [options-globales] COMMAND ..." -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " -msgstr "" +#: ipalib/cli.py:772 +msgid "Built-in commands:" +msgstr "Commandes intégrées :" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " -msgstr "" +#: ipalib/cli.py:774 +msgid "Help subtopics:" +msgstr "Sous-thèmes de l'aide :" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "" +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "Thèmes de l'aide :" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" -msgstr "" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "Utiliser `ipa --help` pour obtenir la liste des options globales." -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" -msgstr "" +#: ipalib/cli.py:816 +msgid "Topic commands:" +msgstr "Commandes du thème :" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" -msgstr "" +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "Nom de commande" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" -msgstr "" +#: ipalib/cli.py:1130 +msgid "No file to read" +msgstr "Pas de fichier à lire" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" -msgstr "" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "Version de client %(cver)s incompatible avec la version %(sver)s du serveur %(server)r" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" -msgstr "" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "Code erreur inconnu %(code)d renvoyé par %(server)s: %(error)s" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" -msgstr "" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "une erreur interne est survenue" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" -msgstr "" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "une erreur interne est survenue sur le serveur %(server)r" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "commande inconnue %(name)r" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" -msgstr "" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "erreur sur le serveur %(server)r: %(error)s" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" -msgstr "" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "impossible de se connecter à %(uri)r: %(error)s" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Requête JSON-RPC invalide : %(error)s" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "erreur au triage des données du transport XML-RPC : %(error)s" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" -msgstr "" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Erreur Kerberos : %(major)s/%(minor)s" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" -msgstr "" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "n'ai pas reçu les crédits Kerberos" -#: ipalib/plugins/aci.py:422 -msgid "Permission" -msgstr "" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "Service %(service)r introuvable dans la base Kerberos" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" -msgstr "" +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "Cache de crédits introuvable" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" -msgstr "" +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "Ticket expiré" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" -msgstr "" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "Permissions du cache de crédit incorrectes" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" -msgstr "" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "Mauvais format de cache de crédit" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" -msgstr "" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "Impossible de trouver le KDC pour le domaine demandé" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" -msgstr "" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Accès insuffisant : %(info)s" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" -msgstr "" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "la commande %(name)r ne prend aucun argument" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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] "la commande %(name)r prend au plus %(count)d argument" +msgstr[1] "la commande %(name)r prend au plus %(count)d arguments" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "arguments et options se chevauchant : %(names)r" -#: ipalib/plugins/aci.py:450 -msgid "Member of" -msgstr "" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "%(name)r est requis" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" -msgstr "" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "%(name)r invalide : %(error)s" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" -msgstr "" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "l'API n'a pas d'espace de nom : %(name)r" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "" +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Les mots de passe ne correspondent pas" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" -msgstr "" +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "Commande non développée" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" -msgstr "" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "Le client n'est pas configuré. Lancer la commande ipa-client-install." -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" -msgstr "" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" -msgstr "" +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Cette entrée existe déjà" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" -msgstr "" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "Vous devez enregistrer un système afin de créer un service" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" -msgstr "" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "Le principal de service n'est pas de la forme : service/fully-qualified host name: %(reason)s" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " -msgstr "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "Le domaine du principal ne correspond pas au domaine de ce serveur IPA" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" -msgstr "" +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "Cette commande requiert des droits root" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" -msgstr "" +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "Ce groupe est déjà de type POSIX" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " -msgstr "" +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "Le principal n'est pas de la forme user@REALM: %(principal)r" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " -msgstr "" +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "Cette entrée est déjà activée" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "Cette entrée est déjà désactivée" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " -msgstr "" +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "Cette entrée ne peut être activée ou désactivée" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " -msgstr "" +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "Cette entrée n'est pas un membre" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" -msgstr "" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "Un groupe ne peut être membre de lui-même" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" +msgstr "Cette entrée est déjà membre" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " -msgstr "" +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Échec de décodage base64 : %(reason)s" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "Un groupe ne peut être ajouté comme membre de lui-même" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " -msgstr "" +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "Le groupe par défaut ne peut être supprimé" -#: ipalib/plugins/aci.py:837 -msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " -msgstr "" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "Un système doit avoir un enregistrement DNS A correspondant" -#: ipalib/plugins/aci.py:865 -msgid "" -"\n" -" Rename an ACI.\n" -" " -msgstr "" +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "La suppression d'un groupe géré est interdite. Il doit d'abord être détaché." -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" -msgstr "" +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "Un groupe géré ne peut avoir de politique de mot de passe." -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" -msgstr "" +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "'%(entry)s' ne possède pas de certificat." + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "Impossible de créer un groupe privé. Un groupe '%(group)s' existe déjà." -#: ipalib/plugins/automount.py:20 +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" -msgstr "" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "Un problème est survenu lors de la vérification que tous les membres étaient des %(verb)s: %(exc)s" -#: ipalib/plugins/automount.py:182 +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s ne contient pas '%(value)s'" + +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Location container for automount maps.\n" -" " -msgstr "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "Le critère de recherche n'est pas suffisamment spécifique. Une valeur attendue, mais %(found)d trouvées." -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" -msgstr "" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "pas de commande ou de sujet d'aide pour %(topic)r" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" -msgstr "" +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "la modification a subit un collision avec une autre" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." -msgstr "" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "pas de modification à effectuer" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " -msgstr "" +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s : %(info)s" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " -msgstr "" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "limites dépassées pour cette requête" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " -msgstr "" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " -msgstr "" +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "la modification de clé primaire n'est pas autorisée" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " -msgstr "" +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s : une seule valeur autorisée." -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " -msgstr "" +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s : syntaxe invalide." -#: ipalib/plugins/automount.py:314 -msgid "Master file" -msgstr "" +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "Filtre de recherche invalide %(info)s" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." -msgstr "" +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "L'opération sur le certification ne peut être effectuée : %(error)s" -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "" +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Erreur de format de certificate : %(error)s" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" -msgstr "" +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "Déjà enregistré" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " -msgstr "" +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "Pas encore enregistré" + +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "Résultats tronqués, essayer un recherche plus spécifique" -#: ipalib/plugins/automount.py:492 +#: ipalib/frontend.py:821 msgid "" -"\n" -" Automount map object.\n" -" " -msgstr "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "Récupérer et imprimer tous les attributs du serveur. Affecte la sortie standard de la commande." -#: ipalib/plugins/automount.py:505 -msgid "Map" -msgstr "" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." +msgstr "Imprimer les entrées telles que stockées sur le serveur. Affecte uniquement le format de sortie." -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." -msgstr "" +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "Version du client. Utilisée pour déterminer si le serveur acceptera la requête." -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "" +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "Transférer au serveur au lieu d'exécuter localement" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" -msgstr "" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "Un dictionnaire représente une entrée LDAP" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " -msgstr "" +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "Une liste d'entrées LDAP" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " -msgstr "" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "Toutes les commandes doivent avoir au moins un résultat" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " -msgstr "" +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "type incorrect" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " -msgstr "" +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "Une seule valeur est autorisée" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " -msgstr "" +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "doit être True ou False" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " -msgstr "" +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "doit être un nombre entier" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" -msgstr "" +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "doit être supérieur ou égal à %(minvalue)d" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." -msgstr "" +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "doit être inférieur ou égal à %(maxvalue)d" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" -msgstr "" +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "doit être un nombre décimal" -#: ipalib/plugins/automount.py:597 -msgid "description" -msgstr "" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "doit être supérieur ou égal à %(minvalue)f" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" -msgstr "" +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "doit être inférieur ou égal à %(maxvalue)f" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" -msgstr "" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "doit correspondre au motif \"%(pattern)s\"" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" -msgstr "" +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "doit être des données binaires" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "doit être d'au moins %(minlength)d octets" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." -msgstr "" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "peut être d'au plus %(maxlength)d octets" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " -msgstr "" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "doit être d'exactement %(length)d octets" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " -msgstr "" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "doit être du texte Unicode" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" -msgstr "" +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "Les espaces de début et de fin ne sont pas autorisés" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" -msgstr "" +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "doit être d'au moins %(minlength)d caractères" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." -msgstr "" +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "peut être d'au plus %(maxlength)d caractères" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " -msgstr "" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "doit être d'exactement %(length)d caractères" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " -msgstr "" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." +msgstr "Le caractère '%(char)r' n'est pas autorisé." -#: ipalib/plugins/automount.py:809 -msgid "New mount information" -msgstr "" +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "doit être l'un parmi %(values)r" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " -msgstr "" +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" +msgstr "Une liste de valeurs d'ACI" -#: ipalib/plugins/automount.py:844 +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "type, filter, subtree et targetgroup sont mutuellement exclusifs" + +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" +msgstr "Un préfixe ACI est requis" + +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Display an automount key.\n" -" " -msgstr "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "au moins un parmi type, filter, subtree, targetgroup, attrs ou memberof est requis" -#: ipalib/plugins/baseldap.py:19 +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" +msgstr "filter et memberof sont mutuellement exclusifs" + +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" +msgstr "group, permission et self sont mutuellement exclusifs" + +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" +msgstr "Un parmi group, permission ou self est requis" + +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" +msgstr "Le groupe '%s' n'existe pas" + +#: ipalib/plugins/aci.py:273 +msgid "empty filter" +msgstr "filtre vide" + +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "Erreur de syntaxe : %(error)s" + +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "ACI nommée \"%s\" introuvable" + +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" +msgstr "Préfixe ACI" + +#: ipalib/plugins/aci.py:401 msgid "" -"\n" -"Base classes for LDAP plugins.\n" -msgstr "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "Préfixe utilisé pour distinguer les types d'ACI (permission, delegation, selfservice, none)" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" -msgstr "" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" +msgstr "ACI" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" -msgstr "" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" +msgstr "Nom d'ACI" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" -msgstr "" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" +msgstr "Permission" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" -msgstr "" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" +msgstr "L'ACI Permission donne accès à" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" -msgstr "" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" +msgstr "Groupe d'utilisateurs" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" -msgstr "" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" +msgstr "L'ACI groupe utilisateur donne accès à" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" -msgstr "" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" +msgstr "Permissions" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" -msgstr "" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" +msgstr "Liste séparée par des virgules de permissions à accorder (read, write, add, delete, all)" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" -msgstr "" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" +msgstr "Attributs" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" -msgstr "" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" +msgstr "Liste séparée par des virgules d'attributs" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" -msgstr "" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" +msgstr "Type" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" -msgstr "" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "type d'objet IPA (user, group, host, hostgroup, service, netgroup)" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" -msgstr "" +#: ipalib/plugins/aci.py:458 +msgid "Member of" +msgstr "Membre de" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" -msgstr "" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" +msgstr "Membre d'un groupe" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" -msgstr "" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" +msgstr "Filtre" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" -msgstr "" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Filtre LDAP valide (i.e. ou=Engineering)" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" -msgstr "" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" +msgstr "Sous-arbre" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" -msgstr "" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" +msgstr "Sous-arbre sur lequel appliquer l'ACI" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" -msgstr "" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" +msgstr "Groupe cible" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" -msgstr "" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" +msgstr "Groupe sur lequel appliquer l'ACI" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" -msgstr "" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" +msgstr "Cibler votre propre entrée (self)" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" -msgstr "" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" +msgstr "Appliquer l'ACI à votre propre entrée (self)" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" -msgstr "" +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "ACI créée \"%(value)s\"" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" -msgstr "" +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "Tester la syntaxe de l'ACI, sans rien écrire" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" -msgstr "" +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Deleted ACI \"%(value)s\"" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" -msgstr "" +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "ACI" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" -msgstr "" +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "ACI modifiée \"%(value)s\"" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" -msgstr "" +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI correspondantes" +msgstr[1] "%(count)d ACI correspondantes" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" -msgstr "" +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "Nouveau nom de l'ACI" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " -msgstr "" +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI renommée en \"%(value)s\"" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " -msgstr "" +"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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "\nRègle d'auto adhésion.\n\nIl est possible d'apporter de la clarté dans l'adhésion de systèmes ou\nd'utilisateurs en configurant des motifs d'expressions rationnelles inclusives\nou exclusives, ce qui permet d'assigner de nouvelles entrées dans un groupe\nd'utilisateurs ou de systèmes sur la base d'informations dans les attributs.\n\nUne règle est directement associée avec un groupe par son nom, il est donc\nimpossible de créer une règle sans le nom du groupe auquel elle est associée.\n\nUne condition est une expression rationnelle utilisée par 389-ds pour\nidentifier les nouvelles entrées à utiliser dans la règle d'auto-adhésion.\nS'il y a correspondance avec une règle d'auto-adhésion, alors l'entrée\nest automatiquement ajoutée au groupe d'utilisateurs ou de systèmes.\n\nEXEMPLES :\n\n Ajouter le groupe d'utilisateurs ou de systèmes initial :\n ipa hostgroup-add --desc=\"Web Servers\" webservers\n ipa group-add --desc=\"Developers\" devel\n\n Créer la règle initiale :\n ipa automember-add --type=hostgroup webservers\n ipa automember-add --type=group devel\n\n Ajouter une condition à la règle :\n ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n\n Ajouter une condition exclusive à la règle empêchant l'auto-adhésion :\n ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n\n Ajouter un système :\n ipa host-add web1.example.com\n\n Ajouter un utilisateur :\n ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n\n Vérifier l'auto-adhésion :\n ipa hostgroup-show webservers\n Host-group: webservers\n Description: Web Servers\n Member hosts: web1.example.com\n\n ipa group-show devel\n Group name: devel\n Description: Developers\n GID: 1004200000\n Member users: tuser\n\n Supprimer une conditition de la règle :\n ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n\n Modifier la règle d'auto-adhésion:\n ipa automember-mod\n\n Définir le groupe cible par défaut :\n ipa automember-default-group-set --default-group=webservers --type=hostgroup\n ipa automember-default-group-set --default-group=ipausers --type=group\n\n Supprimer le groupe cible par défaut :\n ipa automember-default-group-remove --type=hostgroup\n ipa automember-default-group-remove --type=group\n\n Afficher le groupe cible par défaut :\n ipa automember-default-group-show --type=hostgroup\n ipa automember-default-group-show --type=group\n\n Recherche toutes les règles d'auto-adhésion :\n ipa automember-find\n\n Afficher une règle d'auto-adhésion :\n ipa automember-show --type=hostgroup webservers\n ipa automember-show --type=group devel\n\n Supprimer une règle d'auto-adhésion :\n ipa automember-del --type=hostgroup webservers\n ipa automember-del --type=group devel\n" + +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "Regex inclusive" + +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "Regex exclusive" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "Clé d'attribut" -#: ipalib/plugins/baseldap.py:241 +#: ipalib/plugins/automember.py:128 msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " -msgstr "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "Attribut à filtrer via l'expression rationnelle. Par exemple fqdn pour un système, ou manager pour un utilisateur" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" -msgstr "" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "Type de groupe" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" -msgstr "" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "Type de groupe auquel la règle s'applique" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" -msgstr "" +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "Règle d'auto-adhésion" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" -msgstr "" +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" +msgstr "Règle d'auto-adhésion" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "" +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "Description" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." -msgstr "" +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "Une description de cette règle d'auto-adhésion" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." -msgstr "" +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "Groupe par défaut" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "Groupe par défaut assigné aux nouvelles entrées" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " -msgstr "" +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" +msgstr "Groupe : %s introuvable !" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s n'est pas un attribut valide." -#: ipalib/plugins/baseldap.py:703 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Base class for commands that need to retrieve an existing entry.\n" +" Add an automember rule.\n" " " -msgstr "" +msgstr "\n Ajouter une règle d'auto-adhésion.\n " -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " -msgstr "" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "Règle d'auto-adhésion \"%(value)s\" ajoutée" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." -msgstr "" +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "L'auto-adhésion n'est pas configurée" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " -msgstr "" +msgstr "\n Ajouter des conditions à une règle d'auto-adhésion.\n " -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" -msgstr "" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "Échec lors de l'ajout" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "Condition(s) ajoutées à \"%(value)s\"" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "Conditions n'ayant pu être ajoutées" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "Nombre de conditions ajoutées" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "Règle d'auto-adhésion : %s introuvable !" + +#: ipalib/plugins/automember.py:329 msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." -msgstr "" +"\n" +" Override this so we can add completed and failed to the return result.\n" +" " +msgstr "\n Outrepasser ceci afin de pouvoir préciser les ajouts et échecs aux résultats renvoyé.\n " -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Update an LDAP entry.\n" +" Remove conditions from an automember rule.\n" " " -msgstr "" +msgstr "\n Supprimer les conditions d'une règle d'auto-adhésion.\n " -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" -msgstr "" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" +msgstr "Condition(s) supprimée(s) de \"%(value)s\"" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" -msgstr "" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "Conditions n'ayant pu être supprimées" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" -msgstr "" +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "Nombre de conditions supprimées" -#: ipalib/plugins/baseldap.py:988 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " -msgstr "" +" Override this so we can set completed and failed.\n" +" " +msgstr "\n Outrepasser ceci afin de pouvoir préciser les ajouts et échecs.\n " -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:434 msgid "" "\n" -" Base class for member manipulation.\n" +" Modify an automember rule.\n" " " -msgstr "" +msgstr "\n Modifier une règle d'auto-adhésion.\n " + +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "Règle d'auto-adhésion \"%(value)s\" modifiée" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Delete an automember rule.\n" " " -msgstr "" - -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" -msgstr "" +msgstr "\n Supprimer une règle d'auto-adhésion.\n " -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" -msgstr "" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "Règle d'auto-adhésion \"%(value)s\" supprimée" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:466 msgid "" "\n" -" Remove LDAP entries from members.\n" +" Search for automember rules.\n" " " -msgstr "" - -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" -msgstr "" +msgstr "\n Rechercher des règles d'auto-adhésion.\n " -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "%(count)d règle correspondante" +msgstr[1] "%(count)d règles correspondantes" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Display information about an automember rule.\n" " " -msgstr "" - -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" -msgstr "" - -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +msgstr "\n Afficher les informations sur une règle d'auto-adhésion.\n " -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Set default group for all unmatched entries.\n" " " -msgstr "" +msgstr "\n Définir le groupe par défaut pour les entrées ne correspondant à aucune règle.\n " + +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" +msgstr "Groupe d'auto-adhésion par défaut défini à \"%(value)s\"" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " -msgstr "" +msgstr "\n Supprimer le groupe par défaut pour les entrées ne correspondant à aucune règle.\n " -#: ipalib/plugins/baseldap.py:1654 -msgid "added" -msgstr "" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "Groupe d'auto-adhésion par défaut \"%(value)s\" supprimé" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "Aucun groupe d'auto-adhésion défini" + +#: ipalib/plugins/automember.py:567 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Display information about the default automember groups.\n" " " -msgstr "" - -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" -msgstr "" +msgstr "\n Afficher les informations sur le groupe d'auto-adhésion par défaut.\n " -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automount.py:29 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +"Automount\n" "\n" -"To run this code in the lite-server\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" +"A key is a mount point associated with a map.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"EXAMPLES:\n" "\n" -"IPA certificate operations\n" +"Locations:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"In order to request a certificate:\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -"EXAMPLES:\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"Maps:\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +"Keys:\n" "\n" -"The following revocation reasons are supported:\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -msgstr "" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" +msgstr "\nAutomount\n\nStocke la configuration automount(8) pour autofs(8) dans IPA.\n\nLa base d'une configuration automount est le fichier de configuration auto.master.\nC'est aussi le lieu de base dans IPA. Plusieurs configurations auto.master\npeuvent être stockées dans plusieurs lieux différents. Un lieu est spécifique\nà chaque mise en œuvre, le lieu par défaut étant 'default'. Par exemple, vous\npouvez avoir un lieu par région géographique, par étage, par type, etc.\n\nAutomount a trois types d'objets : les lieux, les cartes et les clés.\n\nUn lieu définit un jeu de cartes ancrées dans auto.master. Cela permet\nde stocker de multiples configurations automount. Un lieu en soi n'est pas\ntrès intéressant, mais est le point de départ d'une nouvelle carte automount.\n\nUne carte est en gros équivalente à un fichier individuel automount et fournit\nle stockage pour les clés.\n\nUne clé est un point de montage associé à une carte.\nA key is a mount point associated with a map.\n\nQuand un nouveau lieu est créé, deux cartes sont automatiquement\ncréées pour lui: auto.master et auto.direct. auto.master est la carte racine\npour toutes les cartes automount pour le lieu en question. auto.direct est\nla carte par défaut pour les montages directs et est monté sur /-.\n\nEXEMPLES:\n\nLieux:\n\n Créer un nouveau lieu nommé \"Baltimore\" :\n ipa automountlocation-add baltimore\n\n Afficher le nouveau lieu :\n ipa automountlocation-show baltimore\n\n Trouver les lieux disponibles :\n ipa automountlocation-find\n\n Supprimer un lieu automount nommé :\n ipa automountlocation-del baltimore\n\n Afficher à quoi ressembleraient les cartes automount si elles étaient dans le système de fichiers :\n ipa automountlocation-tofiles baltimore\n\n Importer une configuration existante dans un lieu:\n ipa automountlocation-import baltimore /etc/auto.master\n\n L'import échoera si une entrée dupliquée est trouvée. Pour une\n utilisation continue où les erreurs sont ignorées, utiliser l'option\n --continue.\nCartes :\n\n Créer une nouvelle carte, \"auto.share\" :\n ipa automountmap-add baltimore auto.share\n\n Afficher la nouvelle carte :\n ipa automountmap-show baltimore auto.share\n\n Trouver les cartes du lieu baltimore :\n ipa automountmap-find baltimore\n\n Supprimer la carte auto.share :\n ipa automountmap-del baltimore auto.share\n\nClés :\n\n Créer une nouvelle clé pour la carte auto.share du lieu baltimore. Cela associe\n la carte précédemment créée à auto.master auto.master:\n ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n\n Créer une nouvelle clé dans notre carte auto.share, un montage NFS pour les pages de manuel :\n ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n\n Trouver toutes les clés de la carte auto.share :\n ipa automountkey-find baltimore auto.share\n\n Trouver toutes les clés automount directes :\n ipa automountkey-find baltimore --key=/-\n\n Supprimer la clé man de la carte auto.share :\n ipa automountkey-del baltimore auto.share --key=man\n" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "lieu d'automontage" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" -msgstr "" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" +msgstr "lieux d'automontage" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" +msgstr "Lieux d'automontage" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" -msgstr "" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "Lieu d'automontage" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" +msgstr "Lieu" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "" +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." +msgstr "Nom de lieu automount." -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." +msgstr "Créer un nouveau lieu d'automontage" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Lieu d'automontage \"%(value)s\" ajouté" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." +msgstr "Supprimer un lieu d'automontage." -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Lieu d'automontage \"%(value)s\" supprimé" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" -msgstr "" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." +msgstr "Afficher un lieu d'automontage." -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "Rechercher un lieu d'automontage." -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" -msgstr "" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "%(count)d lieu d'automontage correspondants" +msgstr[1] "%(count)d lieux d'automontage correspondant" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "" +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "Créer les fichiers d'automontage pour un lieu spécifique." -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" -msgstr "" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." +msgstr "Importer les fichiers d'automontage pour un lieu spécifique." -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" -msgstr "" +#: ipalib/plugins/automount.py:323 +msgid "Master file" +msgstr "Fichier maître" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" -msgstr "" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." +msgstr "Fichier maître automount" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" -msgstr "" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." +msgstr "Mode opération continue. Les erreurs seront rapportées mais le processus continuera." -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" -msgstr "" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" +msgstr "Fichiers %(file)s introuvable" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" -msgstr "" +#: ipalib/plugins/automount.py:512 +msgid "automount map" +msgstr "carte d'automontage" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" -msgstr "" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" +msgstr "cartes d'automontage" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" -msgstr "" +#: ipalib/plugins/automount.py:520 +msgid "Map" +msgstr "Carte" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." +msgstr "Nom de carte d'automontage." -#: ipalib/plugins/cert.py:402 -msgid "Request id" -msgstr "" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" +msgstr "Cartes d'automontage" -#: ipalib/plugins/cert.py:408 -msgid "Request status" -msgstr "" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" +msgstr "Carte d'automontage" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." +msgstr "Créer une nouvelle carte d'automontage." -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "Carte d'automontage \"%(value)s\" ajoutée" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" -msgstr "" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." +msgstr "Supprimer une carte d'automontage." -#: ipalib/plugins/cert.py:466 -msgid "Output filename" -msgstr "" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "Carte d'automontage \"%(value)s\" supprimée" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." -msgstr "" +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "Modifier une carte d'automontage." -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "Carte d'automontage \"%(value)s\" modifiée" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" -msgstr "" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "Rechercher des cartes d'automontage." -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "%(count)d carte d'automontage correspondante" +msgstr[1] "%(count)d cartes d'automontage correspondantes" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "" +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "Afficher une carte d'automontage." -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "Objet clé d'automontage." -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" -msgstr "" +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "clé d'automontage" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "clés d'automontage" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" -msgstr "" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" +msgstr "Clé" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." -msgstr "" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." +msgstr "Nom de clé d'automontage." -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " -msgstr "" +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" +msgstr "Information du montage" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" -msgstr "" +#: ipalib/plugins/automount.py:615 +msgid "description" +msgstr "description" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" -msgstr "" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "Clés d'automontage" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" -msgstr "" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "Clé d'automontage" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." -msgstr "" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "La paire key,info doit être unique. Une clé nommée %(key)s avec l'information %(info)s existe déjà." -#: ipalib/plugins/config.py:106 -msgid "Default shell" -msgstr "" +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" +msgstr "la clé nommée %(key)s existe déjà" + +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "La clé automount %(key)s avec l'information %(info)s n'existe pas" + +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "Plus d'une entrée avec la clé %(key)s trouvée, utilisez --info pour sélectionner l'entrée spécifique." -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." -msgstr "" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." +msgstr "Créer une nouvelle clé d'automontage." -#: ipalib/plugins/config.py:111 -msgid "Default users group" -msgstr "" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "Clé d'automontage \"%(value)s\" créée" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." -msgstr "" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "Créer un nouveau point de montage indirect." -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" -msgstr "" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "Carte d'automontage indirect \"%(value)s\" créée" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." -msgstr "" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" +msgstr "Point de montage" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" -msgstr "" +#: ipalib/plugins/automount.py:772 +msgid "Parent map" +msgstr "Carte parente" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." -msgstr "" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." +msgstr "Nom de la carte parente (par défaut : auto.master)." -#: ipalib/plugins/config.py:127 -msgid "Search size limit" -msgstr "" +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." +msgstr "Supprimer une clé d'automontage." -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." -msgstr "" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "Clé d'automontage \"%(value)s\" supprimée" -#: ipalib/plugins/config.py:133 -msgid "User search fields" -msgstr "" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." +msgstr "Modifier une clé d'automontage." -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." -msgstr "" +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "Clé d'automontage \"%(value)s\" modifiée" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." -msgstr "" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" +msgstr "Nouvelle information de montage" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "" +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." +msgstr "Rechercher une clé d'automontage." -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." -msgstr "" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "%(count)d clé d'automontage correspondante" +msgstr[1] "%(count)d clés d'automontage correspondantes" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" -msgstr "" +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." +msgstr "Afficher une clé d'automontage." -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." -msgstr "" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "Mot de passe" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" -msgstr "" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" +msgstr "Membres en échec" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." -msgstr "" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" +msgstr "Utilisateurs membres" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" -msgstr "" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" +msgstr "Groupes membres" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." -msgstr "" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" +msgstr "Membre des groupes" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" -msgstr "" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" +msgstr "Systèmes membres" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." -msgstr "" +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" +msgstr "Groupes de systèmes membres" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" -msgstr "" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" +msgstr "Membre du groupe de systèmes" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." -msgstr "" +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" +msgstr "Rôles" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" +msgstr "Groupes de commandes sudo" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" +msgstr "Accord en cours des privilègues aux rôles" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" -msgstr "" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" +msgstr "Netgroups membres" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" +msgstr "Membre des netgroups" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" -msgstr "" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" +msgstr "Services membres" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" -msgstr "" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" +msgstr "Groupes de services membres" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "Services HBAC membres" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" +msgstr "Groupes de services HBAC membres" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" -msgstr "" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" +msgstr "Utilisateurs membres indirects" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" -msgstr "" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" +msgstr "Groupes membres indirects" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." -msgstr "" +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" +msgstr "Systèmes membres indirects" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" -msgstr "" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" +msgstr "Groupes de systèmes membres indirect" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" -msgstr "" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" +msgstr "Membres indirect des rôles" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" +msgstr "Permission membre indirect" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" -msgstr "" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" +msgstr "Service HBAC membre indirect" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" +msgstr "Groupe de services membre indirect" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" -msgstr "" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" +msgstr "Netgroups membres indirects" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:148 +msgid "External host" +msgstr "Système externe" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" -msgstr "" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" +msgstr "Systèmes/groupes de systèmes sources en échec" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" +msgstr "Systèmes et groupes de système en échec" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" +msgstr "Utilisateurs et groupes en échec" -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" +msgstr "Services et groupes de service en échec" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" -msgstr "" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" +msgstr "managedby en échec" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." -msgstr "" +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" +msgstr "Échec à la suppression" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " -msgstr "" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" +msgstr "entrée" + +#: ipalib/plugins/baseldap.py:307 +msgid "entries" +msgstr "entrées" + +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" +msgstr "Entrée" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" -msgstr "" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "entrée conteneur (%(container)s) introuvable" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: %(oname)s introuvable" -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: %(oname)s introuvable" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" -msgstr "" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "%(oname)s avec le nom \"%(pkey)s\" existe déjà" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" -msgstr "" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." +msgstr "Modifie un attribut avec une paire nom/valeur. Le format est attr=valeur.\nPour les attributs multi-valués, la commande remplace toutes les valeurs déjà présentes." -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" -msgstr "" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." +msgstr "Ajouter une paire attribut/valeur. Format : attr=valeur. Les\nattributs doivent faire partie du schéma." -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." -msgstr "" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." +msgstr "Supprimer une paire attribut/valeur. L'option sera évaluée\nen dernier, après les modifications et ajouts." -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" -msgstr "" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." +msgstr "Mode continu : pas d'arrêt sur erreurs." -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" -msgstr "" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" +msgstr "Droits" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" -msgstr "" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." +msgstr "Affiche les droits d'accès sur cette entrée (requiert --all). Cf. la page de manuel de ipa pour plus d'informations." -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" -msgstr "" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" +msgstr "Renommer" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" -msgstr "" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Renomme l'objet %(ldap_obj_name)s" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" -msgstr "" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" +msgstr "cette entrée a été supprimée pendant sa modification" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" -msgstr "" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" +msgstr "liste séparée par des virgules de %s" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" -msgstr "" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" +msgstr "%s membre" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" -msgstr "" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" +msgstr "liste séparée par des virgules de %s à ajouter" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" -msgstr "" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" +msgstr "Membres n'ayant pu être ajoutés" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" -msgstr "" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" +msgstr "Nombre de membres ajoutés" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" -msgstr "" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" +msgstr "liste séparée par des virgules de %s à supprimer" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" -msgstr "" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" +msgstr "Membres n'ayant pu être supprimé" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" -msgstr "" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" +msgstr "Nombre de membres supprimés" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" -msgstr "" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." +msgstr "Rechercher des %s avec ces %s %s." -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" -msgstr "" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." +msgstr "Rechercher des %s sans ces %s %s." -#: ipalib/plugins/dns.py:365 -msgid "Active zone" -msgstr "" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" +msgstr "Limite de durée" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" -msgstr "" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" +msgstr "Limite de durée de la recherche en secondes" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" -msgstr "" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" +msgstr "Limite de taille" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." -msgstr "" +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" +msgstr "Nombre maximal d'entrées renvoyées" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " -msgstr "" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" +msgstr "Clé primaire uniquement" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" -msgstr "" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "Les résultats devraient contenir uniquement des attributs clé primaire uniquement (\"%s\")" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." -msgstr "" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" +msgstr "ajouté" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" -msgstr "" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" +msgstr "retiré" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" -msgstr "" +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" +msgstr "Commandes imbriquées à exécuter" -#: ipalib/plugins/dns.py:431 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Delete DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:439 -msgid "" +"IPA certificate operations\n" "\n" -" Modify DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:452 -msgid "" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Search for DNS zones (SOA records).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:460 -msgid "" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" "\n" -" Disable DNS Zone.\n" -" " -msgstr "" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" +msgstr "\nOpération sur les certificats IPA\n\nMet en œuvre un jeu de commandes permettant l'administration\ndes certificats SSL de serveurs.\n\nLes requêtes de certificats existent sous la forme d'un Certificate Signing Request (CSR)\nau format PEM.\n\nEn cas d'utilisation du module d'auto-signature, alors le sujet du CSR devra\nêtre identique au sujet configuré dans le serveur. L'autorité de certification\ndogtag utilise uniquement la valeur du CN du CSR, et remplace le reste du sujet.\n\nUn certificat est stocké avec un principal de service, qui requiert\nlui un système.\nAfin de demander un certificat  :\n\n* Le système doit exister\n* Le service doit exister (ou utiliser l'option --add pour l'ajouter automatiquement)\n\nEXEMPLES:\n\n Demander un nouveau certificat et l'ajouter au principal :\n ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n\n Récupérer un certificat existant :\n ipa cert-show 1032\n\n Révoquer un certificat (cf. RFC 5280 pour les détails sur les raisons) :\n ipa cert-revoke --revocation-reason=6 1032\n\n Supprimer l'état en maintien de révocation d'un certificat :\n ipa cert-remove-hold 1032\n\n Vérifier l'état d'une demande de signature :\n ipa cert-status 10\n\nIPA émet actuellement (ou refuse d'émettre) toutes les demandes de\ncertificats, rendant inutile l'état de la requête. Cette commande sera utile\ndans une version future, dans le cas où l'AC n'émet pas immédiatement\nle certificat.\n\nLes raisons suivantes de révocation sont supportées :\n\n * 0 - unspecified\n * 1 - keyCompromise\n * 2 - cACompromise\n * 3 - affiliationChanged\n * 4 - superseded\n * 5 - cessationOfOperation\n * 6 - certificateHold\n * 8 - removeFromCRL\n * 9 - privilegeWithdrawn\n * 10 - aACompromise\n\nN.B.: le code 7 n'est pas utilisé. Cf. RFC 5280 pour les détails :\n\nhttp://www.ietf.org/rfc/rfc5280.txt\n\n" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" -msgstr "" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" +msgstr "Échec dans le décodage du Certificate Signing Request :" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" +msgstr "Échec dans le décodage du Certificate Signing Request" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" -msgstr "" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "Échec dans le décodage du Certificate Signing Request : %s" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." +msgstr "Soumettre une demande de signature de certificat." -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" -msgstr "" +#: ipalib/plugins/cert.py:211 +msgid "CSR" +msgstr "CSR" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" -msgstr "" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" +msgstr "Principal" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" -msgstr "" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "Principal de service pour ce certificat (par ex.: HTTP/test.example.com)" -#: ipalib/plugins/dns.py:538 -msgid "Class" -msgstr "" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" +msgstr "ajoute automatiquement le principal s'il n'existe pas" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" -msgstr "" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" +msgstr "Certificat" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" +msgstr "Subjet" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" +msgstr "Émetteur" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" +msgstr "Pas Avant" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" +msgstr "Pas Après" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" -msgstr "" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" +msgstr "Empreinte (MD5)" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" -msgstr "" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" +msgstr "Empreinte (SHA1)" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" -msgstr "" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" +msgstr "Numéro de série" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" -msgstr "" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" +msgstr "Nom de variable de correspondance de la valeur" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." +msgstr "Vérifier l'état d'une demande de signature de certificat." + +#: ipalib/plugins/cert.py:404 +msgid "Request id" +msgstr "Identifiant de la demande" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" -msgstr "" +#: ipalib/plugins/cert.py:410 +msgid "Request status" +msgstr "État de la demande" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "Numéro de série en décimal (ou en hexadécimal avec le préfixe 0x)" -#: ipalib/plugins/dns.py:802 -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/cert.py:433 +msgid "Retrieve an existing certificate." +msgstr "Récupérer un certificat existant." -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" -msgstr "" +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" +msgstr "Raison de la révocation" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." -msgstr "" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" +msgstr "Nom de fichier de sortie" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" -msgstr "" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." +msgstr "Fichier dans lequel stocker le certificat." -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" -msgstr "" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." +msgstr "Révoquer un certificat." -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" -msgstr "" +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "Révoqué" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "Raison" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" +msgstr "Raison de révocation du certificat (0-10)" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" +msgstr "7 n'est pas une raison de révocation valide" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" -msgstr "" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." +msgstr "Prendre un certificat révoqué en attente." -#: ipalib/plugins/dns.py:940 -msgid "Hostname" -msgstr "" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" +msgstr "Réintégré" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" -msgstr "" +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "Erreur" -#: ipalib/plugins/dns.py:970 +#: ipalib/plugins/config.py:31 msgid "" "\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:19 -msgid "" +"Server configuration\n" "\n" -"Entitlements\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Manage entitlements for client machines\n" +"NOTES:\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"EXAMPLES:\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " -msgstr "" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" +msgstr "\nConfiguration serveur\n\nAdministrer les valeurs de configuration par défaut qu'utilise IPA ainsi\nque certains paramètres.\n\nNOTES :\n\nLa valeur pour le préavis d'expiration des mots de passe (--pwdexpnotify)\nest stockée ici afin de pouvoir être répliquée. Elle n'est pas encore\nutilisée pour la notification des utilisateurs avant l'expiration de leur\nmot de passe.\n\nCertains attributs sont en lecture seule, fournis à titre d'information,\nincluant :\n\nBase de sujet de certificat : la base configurée pour les sujets de\n certificat, par exemple O=EXAMPLE.COM, configurable uniquement lors\n de l'installation.\nFonctionnalités du greffon de gestion des mots de passe : défini\n actuellement les types de condensés additionnels qu'un mot de\n passe va générer (d'autres conditions peuvent s'appliquer).\n\nEXEMPLES :\n\n Afficher la configuration de base du serveur :\n ipa config-show\n\n Afficher toutes les options de configuration :\n ipa config-show --all\n\n Modifier la longueur maximale d'un nom d'utilisateur\n à 99 caractères :\n ipa config-mod --maxusername=99\n\n Augmenter les limites de temps et de taille pour les recherches\n sur le serveur IPA :\n ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n\n Définir le domaine par défaut pour les adresses courriel des utilisateurs :\n ipa config-mod --emaildomain=example.com\n\n Activer le mode migration pour rendre la commande \"ipa migrate-ds\" opérationelle :\n ipa config-mod --enable-migration=TRUE\n" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " -msgstr "" +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." +msgstr "searchtimelimit doit être égal à -1 ou > 1." -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " -msgstr "" +#: ipalib/plugins/config.py:80 +msgid "configuration options" +msgstr "options de configuration" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" -msgstr "" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" +msgstr "Configuration" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " -msgstr "" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" +msgstr "Longueur maximale de nom d'utilisateur" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" -msgstr "" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" +msgstr "Base de répertoire utilisateur" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" -msgstr "" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" +msgstr "Emplacement par défaut des répertoires utilisateur" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" -msgstr "" +#: ipalib/plugins/config.py:105 +msgid "Default shell" +msgstr "Shell par défaut" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" -msgstr "" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" +msgstr "Interpréteur de commande par défaut pour les nouveaux utilisateurs" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " -msgstr "" +#: ipalib/plugins/config.py:110 +msgid "Default users group" +msgstr "Groupe utilisateur par défaut" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." -msgstr "" +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" +msgstr "Groupe utilisateur par défaut pour les nouveaux utilisateurs" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " -msgstr "" +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" +msgstr "Domaine par défaut pour les adresses courriel" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " -msgstr "" +#: ipalib/plugins/config.py:120 +msgid "Search time limit" +msgstr "Durée de recherche limite" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " -msgstr "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "Durée maximale (secondes) pour une recherche (> 0, -1 pour illimité)" -#: ipalib/plugins/entitle.py:394 -msgid "Start" -msgstr "" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" +msgstr "Taille limite de recherche" -#: ipalib/plugins/entitle.py:397 -msgid "End" -msgstr "" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "Nombre maximal d'entrées à rechercher (-1 pour illimité)" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" -msgstr "" +#: ipalib/plugins/config.py:132 +msgid "User search fields" +msgstr "Champs de recherche utilisateur" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" -msgstr "" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "Une liste séparée par des virgules des champs à fouiller lors d'une recherche d'utilisateurs" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " -msgstr "" +"A comma-separated list of fields to search in when searching for groups" +msgstr "Une liste séparée par des virgules des champs à fouiller lors d'une recherche de groupes" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " -msgstr "" +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" +msgstr "Activer le mode migration" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." -msgstr "" +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" +msgstr "Base du sujet de certificat" -#: ipalib/plugins/entitle.py:483 -msgid "Username" -msgstr "" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "Base pour les sujets de certificat (OU=Test,O=Example)" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" -msgstr "" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" +msgstr "Classes d'objets par défaut pour les groupes" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" -msgstr "" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" +msgstr "Classes d'objets par défaut pour les groupes (liste séparée par des virgules)" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" +msgstr "Classes d'objets par défaut pour les utilisateurs" + +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" +msgstr "Classes d'objets par défaut pour les utilisateurs (liste séparée par des virgules)" + +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" +msgstr "Notification avant expiration de mot de passe (jours)" + +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" +msgstr "Nombre de jours de préavis d'expiration de mot de passe" + +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" +msgstr "Fonctionnalités du greffon de gestion des mots de passe" + +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" +msgstr "Hachages supplémentaires à générer dans le greffon de gestion des mots de passe" + +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." +msgstr "Modifier les options de configuration." + +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "Le groupe n'existe pas" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "attribut \"%s\" interdit" + +#: ipalib/plugins/config.py:215 +msgid "May not be empty" +msgstr "Ne peut être vide" + +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/entitle.py:569 +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "Afficher la configuration actuelle." + +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Import an entitlement certificate.\n" -" " -msgstr "" +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" +msgstr "\nDélégation de groupe à groupe\n\nUne permission permet une délégation fine des autorisations. Les règles de\ncontrôle d'accès, ou les instructions (ACI), accordent la possibilité aux\npermissions de réaliser certaines tâches comme l'ajout d'utilisateur, la\nmodification d'un groupe, etc.\n\nLa délégation de groupe à groupe permet aux membres d'un groupe de modifier\nun jeu d'attributs de membres d'un autre groupe.\n\nEXEMPLES:\n\n Ajouter une règle de délégation permettant aux directeurs de modifier\n les adresses des administrateurs :\n ipa delegation-add --attrs=street --membergroup=admins --group=editors 'les directeurs modifient les adresses des administrateurs'\n\n Lors de la gestion d'une liste d'attributs, vous devez toujours spécifier\n la liste complète des attributs, y compris les attributs existants. Ajouter \n postalCode à la liste :\n ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'les directeurs modifient les adresses des administrateurs'\n\n Afficher la règle modifiée :\n ipa delegation-show 'les directeurs modifient les adresses des administrateurs'\n\n Supprimer une règle :\n ipa delegation-del 'les directeurs modifient les adresses des administrateurs'\n" + +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" +msgstr "Délégation '%(permission)s' introuvable" + +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" +msgstr "Erreur à la récupération du groupe membre %(group)s: %(error)s" + +#: ipalib/plugins/delegation.py:101 +msgid "delegation" +msgstr "délégation" -#: ipalib/plugins/entitle.py:646 +#: ipalib/plugins/delegation.py:102 +msgid "delegations" +msgstr "délégations" + +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "Délégations" + +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" +msgstr "Délégation" + +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" +msgstr "Nom de la délégation" + +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " -msgstr "" +"Comma-separated list of permissions to grant (read, write). Default is " +"write." +msgstr "Liste séparée par des virgules des permissions à accorder (read, write). La valeur par défaut est write." + +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" +msgstr "Membre du groupe d'utilisateurs" + +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" +msgstr "Groupe d'utilisateur auquel appliquer la délégation" + +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." +msgstr "Ajouter une nouvelle délégation." + +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "Délégation \"%(value)s\" ajoutée" + +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." +msgstr "Supprimer une délégation." + +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "Délégation \"%(value)s\" supprimée" + +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." +msgstr "Modifier une délégation." + +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "Délégation \"%(value)s\" modifiée" + +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." +msgstr "Rechercher des délégations." -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " -msgstr "" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "%(count)d délégation correspondante" +msgstr[1] "%(count)d délégations correspondantes" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." -msgstr "" +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." +msgstr "Afficher les informations sur une délégation." -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Groups of users\n" +"Domain Name System (DNS)\n" "\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" +"Manage DNS zone and resource records.\n" "\n" -"Every group must have a description.\n" +"EXAMPLES:\n" "\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"EXAMPLES:\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" -msgstr "" - -#: ipalib/plugins/group.py:76 -msgid "" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" "\n" -" Group object.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:100 -msgid "User Groups" -msgstr "" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" +msgstr "\nDomain Name System (DNS)\n\nGestion des zones DNS et des enregistrements de ressource.\n\nEXEMPLES :\n\n Ajouter une nouvelle zone :\n ipa dnszone-add example.com --name-server nameserver.example.com\n --admin-email admin@example.com\n\n Modifier la zone pour permettre les mises à jour dynamiques des\n enregistrements des systèmes du domaine EXAMPLE.COM :\n ipa dnszone-mod example.com --dynamic-update=TRUE \\\n --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n\n Ajouter une nouvelle zone inverse spécifiée par son adresse de réseau :\n ipa dnszone-add --name-from-ip 80.142.15.0/24\n --name-server nameserver.example.com\n\n Ajouter un second serveur de nom pour example.com:\n ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n\n Ajouter un serveur de messagerie pour example.com:\n ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n\n Supprimer un serveur de messagerie précédemment défini pour example.com:\n ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n\n Ajouter un nouvel enregistrement A pour www.example.com: (IP aléatoire)\n ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n\n Ajouter un nouvel enregistrement PTR pour www.example.com\n ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n\n Ajouter de nouveaux enregistrement SRV pour les serveurs LDAP. Les trois quarts\n des requêtes doivent aller sur fast.example.com, un quart sur slow.example.com.\n Si aucune n'est disponible, commuter sur backup.example.com.\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n\n Quand la commande dnsrecord-add ext exécutée sans option pour ajouter un enregsitrement,\n le mode interactif est activé. Le mode interactif a pour invites les types les plus\n courants d'enregistrement pour la zone :\n ipa dnsrecord-add example.com www\n [A record]: 1.2.3.4,11.22.33.44 (2 adresses IP aléeatoires saisies)\n [AAAA record]: (pas d'adresse AAAA saisie)\n Record name: www\n A record: 1.2.3.4, 11.22.33.44\n\n Le mode interactif peut aussi être utilisé pour supprimer des enregistrements DNS :\n ipa dnsrecord-del example.com www\n Pas d'option fournie pour supprimer un enregistrement spécifique.\n Tout supprimer ? Oui/Non (Défault: Non): (ne pas détruire tous les enregistrements)\n Contenu actuel de l'enregistrement DNS :\n\n Enregistrement A : 1.2.3.4, 11.22.33.44\n\n Supprimer l'enregistrement A '1.2.3.4'? Oui/Non (défaut: Non): \n Supprimer l'enregistrement A '11.22.33.44'? Oui/Non (défaut: Non): y\n Nom de l'enregistrement : www\n Enregistrement A : 1.2.3.4 (Enregistrement A 11.22.33.44 a été supprimé)\n\n Afficher la zone example.com :\n ipa dnszone-show example.com\n\n Chercher les zones contenant \"example\" dans le nom de domaine :\n ipa dnszone-find example\n\n Chercher les enregistrements pour les ressources dont le nom contient \"www\" dans la zone example.com:\n ipa dnsrecord-find example.com www\n\n Chercher les enregistrements A de valeur 10.10.0.1 dans la zone example.com\n ipa dnsrecord-find example.com --a-rec 10.10.0.1\n\n Afficher les enregistrements pour la ressource www dans la zone example.com\n ipa dnsrecord-show example.com www\n\n Supprimer la zone example.com avec toutes ses ressources :\n ipa dnszone-del example.com\n\n Résoudre un nom de système afin de vérifier son existence (ajout automatique du nom de domaine IPA\n si non spécifié):\n ipa dns-resolve www.example.com\n ipa dns-resolve www\n" -#: ipalib/plugins/group.py:108 -msgid "Group name" -msgstr "" +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" +msgstr "format d'adresse IP invalide" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" -msgstr "" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" +msgstr "format de réseau IP invalide" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" -msgstr "" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" +msgstr "le format doit être spécifié comme \"priorité poids port cible\"" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" -msgstr "" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" +msgstr "le format doit être spécifié comme \"priorité poids port cible\" (cf. RFC 2782 pour les détails)" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/dns.py:205 msgid "" -"\n" -" Create a new group.\n" -" " -msgstr "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" +msgstr "le format doit être spécifié comme \"priorité serveur_de_messagerie\" (cf. RFC 1035 pour les détails)" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" +msgstr "la valeur de la priorité doit être un entier" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" -msgstr "" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" +msgstr "la valeur de la priorité doit être comprise entre 0 et 65535" -#: ipalib/plugins/group.py:154 +#: ipalib/plugins/dns.py:223 msgid "" -"\n" -" Delete group.\n" -" " -msgstr "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" +msgstr "le format doit être spécifié comme \"ordre préférence drapeaux service regexpremplacement\" (cf. RFC 2915 pour les détails)" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" +msgstr "ordre et préférences doivent être des entiers" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" +msgstr "la valeur de l'ordre et de la préférence doivent être compris entre 0 et 65535" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "le drapeau doit être un caractère unique (avec éventuellement des guillemets)" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" -msgstr "" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" +msgstr "le drapeau doit être une lettre parmi \"S\", \"A\", \"U\", or \"P\"" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/dns.py:249 msgid "" -"\n" -" Search for groups.\n" -" " -msgstr "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "le format doit être spécifié ainsi : \"sous_type nom_de_système\" (cf. RFC 1183 pour les détails)" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" +msgstr "la valeur du sous-type doit être un entier" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" -msgstr "" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" +msgstr "la valeur du sous-type doit être comprise entre 0 et 65535" -#: ipalib/plugins/group.py:257 +#: ipalib/plugins/dns.py:266 msgid "" -"\n" -" Display information about a named group.\n" -" " -msgstr "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" +msgstr "le format doit être spécifié comme \"type key_tag algorithme certificat_ou_crl\" (cf. RFC 4398 pour les détails)" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" +msgstr "key_tag, algorithme and type doivent être des entiers" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "les valeurs de type et key_tag doit être comprises entre 0 et 65535" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "la valeur de algorithme doit être comprise entre 0 et 255" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" +msgstr "le format doit être spécifié comme \"nom_de_domaine\" (cf. RFC 1035 pour les détails) : %s" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" +msgstr "le format doit être spécifié comme \"cible\" (cf. RFC 2672 pour les détails) : %s" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" -msgstr "" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" +msgstr "le format doit être spécifié comme \"key_tag algorithme digest_type digest\" (cf. RFC 4034 pour les détails)" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" -msgstr "" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "la valeur de drapeaux doit être comprise entre 0 et 65535" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" -msgstr "" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" +msgstr "les valeurs de algorithme et digest_type doivent être comprises entre 0 et 255" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -"Host-based access control\n" -"\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" -"\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" -"\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" -"\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" -"\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" -"\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" -"\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" -"\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" +msgstr "le format doit être spécifié comme \"drapeaux protocole algorithme clé_publique\" (cf. RFC 2535 pour les détails)" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "drapeaux, protocole et algorithme doivent être des entiers" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "la valeur de protocole doit être comprise entre 0 et 255" + +#: ipalib/plugins/dns.py:367 +msgid "" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" +msgstr "le format doit être spécifié comme \n \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n where:\n d1: [0 .. 90] (degrés latitude)\n d2: [0 .. 180] (degrés longitude)\n m1, m2: [0 .. 59] (minutes latitude/longitude)\n s1, s2: [0 .. 59.999] (secondes latitude/longitude)\n alt: [-100000.00 .. 42849672.95] par .01 (altitude en mètres)\n siz, hp, vp: [0 .. 90000000.00] (taille/précision en mètres)\n Cf. RFC 1876 plus les détails" + +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "%s doit être un entier" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" +msgstr "%s doit être un nombre à virgule flottante" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" -msgstr "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "d1 et d2 doivent être compris entre 0 et 90" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" -msgstr "" +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "m1, m2, s1 and s2 doivent être compris entre 0 et 59.999" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "alt doit être compris entre -100000.00 et 42849672.95" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" -msgstr "" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "siz, hp and vp doivent être compris entre 0 and 90000000.00" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" -msgstr "" +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "le format doit être spécifié comme \"nom_domaine\" (cf. RFC 1035 pour les détails)" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" -msgstr "" +#: ipalib/plugins/dns.py:423 +msgid "" +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" +msgstr "le format doit être spécifié comme \"nom_domaine_suivant type1 [type2 [type3 [...]]]\" (cf. RFC 4034 pour les détails)" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" -msgstr "" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " +msgstr "le type doit être une valeur parmi " + +#: ipalib/plugins/dns.py:439 +msgid "" +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" +msgstr "le format doit être spécifié comme \"préférence \" (cf. RFC 2230 pour les détails)" + +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "la valeur de la préférence doit être un entier" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" -msgstr "" +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" +msgstr "la valeur de la préférence doit être comprise entre 0 et 65535" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" -msgstr "" +#: ipalib/plugins/dns.py:468 +msgid "" +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" +msgstr "le format doit être spécifié comme \"type_covered algorithm labels original_ttl signature_expiration signature_inception key_tag signers_name signature\" (cf. RFC 2535, 4034 pour les détails)" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" -msgstr "" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " +msgstr "type_covered doit être une valeur parmi " -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" -msgstr "" +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "algorithm, labels, original_ttl et key_tag doivent être des entiers" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" -msgstr "" +#: ipalib/plugins/dns.py:489 +msgid "" +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" +msgstr "signature_expiration and signature_inception doit avoir le format temporel \"YYYYMMDDHHMMSS\"" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" -msgstr "" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" +msgstr "les valeurs de algorithm et labels doivent être comprises entre 0 and 255" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" -msgstr "" +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" +msgstr "la valeur de original_ttl doit être comprise entre 0 et 4294967295" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "" +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" +msgstr "la valeur de tag doit être comprise entre 0 et 65535" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" -msgstr "" +#: ipalib/plugins/dns.py:508 +msgid "" +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" +msgstr "le format doit être spécifié comme \"algorithm fp_type fingerprint\" (cf. RFC 4255 pour les détails)" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" -msgstr "" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "algorithm et fp_type doivent être des entiers" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" -msgstr "" +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" +msgstr "les valeurs de algorithm et fp_type doivent être compris entre 0 et 255" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" -msgstr "" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" +msgstr "Ce type DNS RR n'est pas pris en charge par le greffon bind-dyndb-ldap" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" -msgstr "" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "Le serveur de noms '%(host)s' n'a pas d'enregistrement A/AAAA correspondant" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" -msgstr "" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" +msgstr "Zone DNS" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" +msgstr "Zones DNS" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" +msgstr "Zones DNS" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" +msgstr "Zone DNS" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" +msgstr "Nom de zone" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" +msgstr "Nom de zone (FQDN)" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "Zone inverse de réseau IP" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "Réseau IP à partir duquel créer une zone inverse" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" +msgstr "Serveur de nom faisant autorité" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "Nom de domaine du serveur de nom faisant autorité" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" +msgstr "Adresse courriel de l'administrateur" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" +msgstr "Numéro de série SOA" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "Numéro de série de l'enregistrement SOA" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" +msgstr "Actualisation SOA" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" +msgstr "Durée d'actualisation de l'enregistrement SOA" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" -msgstr "" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" +msgstr "ré-essai SOA" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" +msgstr "Durée avant nouvelle tentative de l'enregistrement SOA" -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" +msgstr "Expiration SOA" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" +msgstr "Durée d'expiration de l'enregistrement SOA" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" +msgstr "Minimum SOA" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" +msgstr "Durée de maintien en cache des réponses négatives" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" +msgstr "Durée de vie SOA" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" +msgstr "Durée de vie de l'enregistrement SOA" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "Classe SOA" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" +msgstr "Classe de l'enregistrement SOA " -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" -msgstr "" +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" +msgstr "Politique de mise à jour BIND" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "Zone active" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" -msgstr "" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" +msgstr "La zone est-elle active ?" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "" +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" +msgstr "Mise à jour dynamique" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" -msgstr "" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." +msgstr "Autorise les mises à jour dynamiques." -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" -msgstr "" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." +msgstr "Créer une nouvelle zone DNS (enregistrement SOA)." -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" +msgstr "Forcer" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." +msgstr "Forcer la création de la zone DNS zone même si le serveur de nom n'est pas dans le DNS." -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" +msgstr "Ajouter le serveur de nom avec cette adresse IP" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" +msgstr "Le DNS n'est pas configuré" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" +msgstr "L'adresse du serveur de nom n'est pas un nom de domaine pleinement qualifié" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." +msgstr "Supprimer la zone DNS (enregistrement SOA)." -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." +msgstr "Modifier la zone DNS (enregistrement SOA)." -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." +msgstr "Rechercher des zones DNS (enregistrements SOA)." -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" +msgstr "Zones forward uniquement" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" -msgstr "" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" +msgstr "Rechercher des zones forward uniquement" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." +msgstr "Afficher les informations au sujet d'une zone DNS (enregistrement SOA)." -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" -msgstr "" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." +msgstr "Désactiver la zone DNS." -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" -msgstr "" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" +msgstr "Zone DNS \"%(value)s\" désactivée" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" -msgstr "" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." +msgstr "Activer la zone DNS." -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" +msgstr "Zone DNS \"%(value)s\" activée" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" +msgstr "Enregistrement de ressource DNS" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" +msgstr "Enregistrements de ressources DNS" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" +msgstr "Enregistrements de ressources DNS" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" +msgstr "Enregistrement de ressources DNS" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" +msgstr "Nom d'enregistrement" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "Durée de vie" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:944 +msgid "Class" +msgstr "Classe" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" +msgstr "Classe DNS" -#: ipalib/plugins/hbacsvcgroup.py:130 +#: ipalib/plugins/dns.py:972 +#, python-format msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " -msgstr "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" +msgstr "La zone inverse pour l'enregistrement PTR doit être une sous-zone de l'un des domaines suivants pleinement qualifiés : %s" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" +msgstr "La zone inverse %s requiert exactement %d composantes adresses IP, %d spécifiées" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" -msgstr "" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." +msgstr "Ajouter un nouvel enregistrement de ressources DNS." -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "forcer la création d'un enregistrement NS même si le nom du système n'est pas dans le DNS" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" -msgstr "" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." +msgstr "Modifier un enregistrement de ressources DNS." -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" -msgstr "" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" +msgstr "Enregistrement \"%(value)s\" supprimé" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" -msgstr "" +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "Supprimer un enregistrement de ressources DNS." -#: ipalib/plugins/host.py:185 +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " -msgstr "" +"Neither --del-all nor options to delete a specific record provided.\n" +"Command help may be consulted for all supported record types." +msgstr "Aucune option de suppression d'un enregistrement spécifique ni --del-all n'ont été indiqués.\nMerci de consulter l'aide pour connaître tous les types d'enregistrements supportés." -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" -msgstr "" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" +msgstr "Supprimer les enregistrements associés" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " -msgstr "" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." +msgstr "Pas d'option fournie pour supprimer un enregistrement spécifique." -#: ipalib/plugins/host.py:231 -msgid "Host name" -msgstr "" +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" +msgstr "Tout supprimer ?" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" -msgstr "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "Contenu actuel de l'enregistrement DNS :\n" -#: ipalib/plugins/host.py:242 -msgid "Locality" -msgstr "" +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "Supprimer %s '%s' ?" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" +msgstr "enregistrement %s de valeur %s introuvable" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" -msgstr "" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." +msgstr "Afficher un enregistrement de ressources DNS." -#: ipalib/plugins/host.py:252 -msgid "Platform" -msgstr "" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." +msgstr "Rechercher des enregistrements de ressources DNS." -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." +msgstr "Résoudre un nom de système DNS." -#: ipalib/plugins/host.py:257 -msgid "Operating system" -msgstr "" +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" +msgstr "'%(value)s' trouvé." -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "" +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "Nom de système" -#: ipalib/plugins/host.py:262 -msgid "User password" -msgstr "" +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" +msgstr "Système '%(host)s' introuvable" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/entitle.py:52 +msgid "" +"\n" +"Entitlements\n" +"\n" +"Manage entitlements for client machines\n" +"\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" +"\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" +"\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" +"\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" +"\n" +" Display current entitlements:\n" +" ipa entitle-status\n" +"\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" +"\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" +"\n" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" +"\n" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" -msgstr "" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" +msgstr "Droits d'utilisation" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" -msgstr "" +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" +msgstr "UUID" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" -msgstr "" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" +msgstr "Produit" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" -msgstr "" +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" +msgstr "Quantité" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" -msgstr "" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" +msgstr "Utilisé" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" -msgstr "" +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" +msgstr "Début" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" -msgstr "" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" +msgstr "Fin" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" +msgstr "Numéro de série" + +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/entitle.py:476 +msgid "Username" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/host.py:781 +#: ipalib/plugins/group.py:26 msgid "" "\n" -" Remove hosts that can manage this host.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:20 -msgid "" +"Groups of users\n" "\n" -"Groups of hosts.\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" "\n" -" Hostgroup object.\n" -" " -msgstr "" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" +msgstr "\nGroupes d'utilisateurs\n\nGestion des groupes d'utilisateur. Par défaut, les nouveaux groupes sont\ndes groupes POSIX. Vous pouvez utiliser l'option --nonposix de la commande\ngroup-add pour le marquer comme non-POSIX. Vous pouvez utiliser l'option\n--posix de la commande group-mod pour convertir un groupe non-POSIX en groupe\nPOSIX. Les groupes POSIX ne peuvent être convertis en groupes non-POSIX.\n\nChaque groupe doit avoir une description.\n\nLes groupes POSIX doivent avoir un numéro d'identifiant de groupe (GID).\nLa modification d'un GID est supportée, mais peut avoir un impact sur les\npermissions de vos fichiers. Il n'est pas nécessaire de fournir un GID à\nla création d'un groupe. IPA en créera un automatiquement s'il n'est pas\nspécifié.\n\nEXEMPLES:\n\n Ajouter un nouveau groupe :\n ipa group-add --desc='administrateurs locaux' localadmins\n\n Ajouter un nouveau groupe non-POSIX :\n ipa group-add --nonposix --desc='administrateurs distants' remoteadmins\n\n Convertir un groupe non-POSIX en POSIX :\n ipa group-mod --posix remoteadmins\n\n Ajouter un nouveau groupe POSIX avec un numéro d'identifiant\n de groupe spécifique :\n ipa group-add --gid=500 --desc='Administrateurs Unix' unixadmins\n\n Ajouter un nouveau groupe POSIX en laissant IPA choisir le numéro\n d'identifiant de groupe :\n ipa group-add --desc='printer admins' printeradmins\n\n Supprimer un groupe :\n ipa group-del unixadmins\n\n Pour ajouter le groupe \"remoteadmins\" au groupe \"localadmins\" :\n ipa group-add-member --groups=remoteadmins localadmins\n\n Ajouter une liste d'utilisateurs au groupe \"localadmins\" :\n ipa group-add-member --users=test1,test2 localadmins\n\n Supprimer un utilisateur du groupe \"localadmins\" :\n ipa group-remove-member --users=test2 localadmins\n\n Afficher l'information sur un groupe nommé.\n ipa group-show localadmins\n" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "" +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "groupe" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "" +#: ipalib/plugins/group.py:81 +msgid "groups" +msgstr "groupes" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" -msgstr "" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" +msgstr "Groupes d'utilisateurs" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "Groupe de l'utilisateur" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" -msgstr "" +#: ipalib/plugins/group.py:109 +msgid "Group name" +msgstr "Nom du groupe" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" +msgstr "Description du groupe" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" +msgstr "GID" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" +msgstr "GID (utiliser cette option pour le positionner manuellement)" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." +msgstr "Créer un nouveau groupe." -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "Groupe \"%(value)s\" créé" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" +msgstr "Créer en tant que groupe non-POSIX" -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:153 +msgid "Delete group." +msgstr "Supprimer un groupe." -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "Groupe \"%(value)s\" supprimé" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." +msgstr "Modifier un groupe." -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" -msgstr "" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Groupe \"%(value)s\" modifié" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " -msgstr "" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" +msgstr "Transformer en groupe POSIX" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" -msgstr "" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." +msgstr "Rechercher des groupes." -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "%(count)d groupe correspondant" +msgstr[1] "%(count)d groupes correspondants" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" +msgstr "rechercher des groupes privés" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." +msgstr "Afficher les informations d'un groupe nommé." -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." +msgstr "Ajouter des membres à un groupe." -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." +msgstr "Supprimer des membres d'un groupe." -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." +msgstr "Détacher un groupe administré d'un utilisateur." -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +msgstr "Groupe \"%(value)s\" détaché de l'utilisateur \"%(value)s\"" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" +msgstr "interdit de modifier les entrées d'utilisateurs" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" +msgstr "interdit de modifier les entrées de groupe" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" +msgstr "Pas un groupe administré" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" -msgstr "" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" +msgstr "\nContrôle d'accès des systèmes (HBAC)\n\nHBAC (Host-based acces control) permet de contrôler qui peut accéder\nà quels services sur quels systèmes, et d'où. Il est possible\nd'utiliser le système HBAC afin de contrôler quels utilisateurs ou\ngroupes d'un système source peuvent accéder quels services, ou groupes\nde services, sur un système cible.\n\nVous pouvez aussi spécifier une catégorie d'utilisateur, de systèmes\ncibles et de systèmes sources. La seule catégorie existante pour le\nmoment est \"all\", mais pourra être étendu dans le futur.\n\nLes systèmes sources et cibles des règles HBAC doivent être des systèmes\nadministrés par IPA.\n\nLes services et groupes de services disponibles sont gérés respectivement\npar les greffons hbacsvc and hbacsvcgroup.\n\nEXEMPLES:\n\n Créer une règle \"test1\" autorisant tous les utilisateurs à accéder\n le serveur \"server\" depuis n'importe où :\n ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n ipa hbacrule-add-host --hosts=server.example.com test1\n\n Afficher les propriétés d'une règle nommée HBAC :\n ipa hbacrule-show test1\n\n Créer une règle pour un service spécifique, permettant à\n l'utilisateur john d'accéder au service sshd sur toute machine depuis\n n'importe quelle machine :\n ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n ipa hbacrule-add-user --users=john john_sshd\n ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n\n Créer une règle pour un nouveau groupe de services, permettant à\n l'utilisateur john d'accéder au service FTP de toute machine depuis\n n'importe quelle machine.\n ipa hbacsvcgroup-add ftpers\n ipa hbacsvc-add sftp\n ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n ipa hbacrule-add-user --users=john john_ftp\n ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n\n Désactiver une règle HBAC nommée :\n ipa hbacrule-disable test1\n\n Supprimer une règle HBAC nommée :\n ipa hbacrule-del allow_server\n" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" -msgstr "" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" +msgstr "Commandes de contrôle d'accès des systèmes" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" -msgstr "" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "Le type deny est obsolète." -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "Règle HBAC" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" -msgstr "" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "Règles HBAC" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" -msgstr "" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" +msgstr "Règles HBAC" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" -msgstr "" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" +msgstr "Règle HBAC" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" -msgstr "" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" +msgstr "Nom de règle" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" -msgstr "" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "Type de règle (allow)" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." -msgstr "" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" +msgstr "Type de règle" -#: ipalib/plugins/internal.py:124 -msgid "Note" -msgstr "" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" +msgstr "Catégorie d'utilisateur" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" -msgstr "" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" +msgstr "Catégorie d'utilisateur sur laquelle la règle s'applique" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." -msgstr "" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" +msgstr "Catégorie de système" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" -msgstr "" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" +msgstr "Catégorie de système sur laquelle la règle s'applique" + +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" +msgstr "Catégorie de système source" + +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" +msgstr "Catégorie de système sources sur laquelle la règle s'applique" + +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" +msgstr "Catégorie de service" + +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" +msgstr "Catégorie de service sur laquelle la règle s'applique" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" -msgstr "" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" +msgstr "Activée" -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" +msgstr "Utilisateurs" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" -msgstr "" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" +msgstr "Systèmes" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" -msgstr "" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" +msgstr "Groupes de systèmes" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" +msgstr "Systèmes sources" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" -msgstr "" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" +msgstr "Groupes de systèmes source" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" -msgstr "" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" +msgstr "Services" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" -msgstr "" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" +msgstr "Groupes de services" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." +msgstr "Créer une nouvelle règle HBAC." -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" -msgstr "" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "Règle HBAC \"%(value)s\" ajoutée" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" -msgstr "" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." +msgstr "Supprimer une règle HBAC." -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" -msgstr "" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Règle HBAC \"%(value)s\" supprimée" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" -msgstr "" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." +msgstr "Modifier une règle HBAC." -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" -msgstr "" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "Règle HBAC \"%(value)s\" modifiée" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" -msgstr "" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." +msgstr "Rechercher des règles HBAC." -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "%(count)d règle HBAC correspondante" +msgstr[1] "%(count)d règles HBAC correspondantes" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." +msgstr "Afficher les propriétés d'une règle HBAC." -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." +msgstr "Activer une règle HBAC." -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "Règle HBAC \"%(value)s\" activée" -#: ipalib/plugins/internal.py:152 -msgid "Name" -msgstr "" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." +msgstr "Désactiver une règle HBAC." -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" -msgstr "" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "Règle HBAC \"%(value)s\" désactivée" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" -msgstr "" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" +msgstr "Horaire d'accès" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" -msgstr "" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." +msgstr "Ajouter des utilisateurs et groupes à une règle HBAC." -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" -msgstr "" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." +msgstr "Retirer des utilisateurs et groupes d'une règle HBAC." -#: ipalib/plugins/internal.py:163 -msgid "Resource" -msgstr "" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." +msgstr "Ajouter des systèmes et groupes de systèmes cibles à une règle HBAC." -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." +msgstr "Retirer des systèmes et groupes de systèmes cibles d'une règle HBAC." -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" -msgstr "" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." +msgstr "Ajouter des systèmes et groupes de systèmes sources à une règle HBAC." -#: ipalib/plugins/internal.py:169 -msgid "Add Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." +msgstr "Retirer des systèmes et groupes de systèmes sources d'une règle HBAC." -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" -msgstr "" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." +msgstr "Ajouter des services à une règle HBAC." -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" -msgstr "" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." +msgstr "Ajouter des services et groupes de services d'une règle HBAC." -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" -msgstr "" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" +msgstr "\nServices HBAC\n\nLes services PAM dont le système HBAC peut contrôler l'accès. Le nom\nutilisé ici doit correspondre au nom de service utilisé par PAM.\nEXEMPLES:\n\n Ajouter un nouveau service HBAC :\n ipa hbacsvc-add tftp\n\n Modifier un service HBAC existant :\n ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n\n Chercher des services HBAC. Cet exemple renverra deux résultats,\n le service FTP et le service tftp nouvellement ajouté :\n ipa hbacsvc-find ftp\n\n Supprimer un service HBAC :\n ipa hbacsvc-del tftp\n\n" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" -msgstr "" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" +msgstr "Commandes HBAC." -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" -msgstr "" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "Service HBAC" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" -msgstr "" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" +msgstr "Services HBAC" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" -msgstr "" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" +msgstr "Services HBAC" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" -msgstr "" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" +msgstr "Service HBAC" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" -msgstr "" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "Nom de service" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" -msgstr "" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" +msgstr "Description de service HBAC" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" -msgstr "" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." +msgstr "Ajouter un nouveau service HBAC." -#: ipalib/plugins/internal.py:183 -msgid "Accessing" -msgstr "" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "Service HBAC \"%(value)s\" ajouté" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" -msgstr "" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." +msgstr "Supprimer un service HBAC existant." -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" -msgstr "" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "Service HBAC \"%(value)s\" supprimé" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" -msgstr "" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." +msgstr "Modifier un service HBAC." -#: ipalib/plugins/internal.py:187 -msgid "Any Service" -msgstr "" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "Service HBAC \"%(value)s\" modifié" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" -msgstr "" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." +msgstr "Rechercher des services HBAC." -#: ipalib/plugins/internal.py:189 -msgid "From" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "%(count)d service HBAC correspondant" +msgstr[1] "%(count)d services HBAC correspondants" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" -msgstr "" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." +msgstr "Afficher les informations sur un service HBAC." -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" +msgstr "\nGroupes de services HBAC\n\nLes groupes de services HBAC peuvent contenir n'importe quel nombre de\nservices individuels, dit « membres ». Chaque groupe doit avoir une\ndescription.\n\nEXEMPLES:\n\n Ajouter un nouveau groupe de services HBAC :\n ipa hbacsvcgroup-add --desc=\"login services\" login\n\n Ajouter des membres à un groupe de services HBAC :\n ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n\n Afficher les informations d'un groupe nommé :\n ipa hbacsvcgroup-show login\n\n Ajouter un nouveau groupe au groupe \"login\" :\n ipa hbacsvcgroup-add --desc=\"switch users\" login\n ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n\n Supprimer un groupe de services HBAC :\n ipa hbacsvcgroup-del login\n" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "Groupe de services HBAC" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" +msgstr "Groupes de services HBAC" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" +msgstr "Groupes de services HBAC" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" +msgstr "Groupe de services HBAC" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" +msgstr "Nom de groupe de services HBAC" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" +msgstr "Description de groupe de services HBAC" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." +msgstr "Ajouter un nouveau groupe de services HBAC." -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "Groupe de services HBAC \"%(value)s\" ajouté" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." +msgstr "Supprimer un groupe de services HBAC." -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "Groupe de services HBAC \"%(value)s\" supprimé" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." +msgstr "Supprimer un groupe de services HBAC." -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "Groupe de services HBAC \"%(value)s\" modifié" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." +msgstr "Rechercher des groupes de services HBAC." -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "%(count)d groupe de services HBAC correspondant" +msgstr[1] "%(count)d groupes de services HBAC correspondants" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." +msgstr "Afficher les informations sur un groupe de services HBAC." -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "Ajouter des membres à un groupe de services HBAC." -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "Supprimer des membres d'un groupe de services HBAC." -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" -msgstr "" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "Simulation de règles de contrôle d'accès basé sur les systèmes" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "Règles correspondantes" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "Règles non-correspondantes" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "Règles inexistantes ou invalides" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "Résultat de la simulation" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "Nom d'utilisateur" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" -msgstr "" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "Système source" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" -msgstr "" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "Système cible" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" -msgstr "" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" +msgstr "Service" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" -msgstr "" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "Règles à tester. Si non-spécifié, --enabled est implicite" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" -msgstr "" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "Masquer les détails des règles correspondantes ou non, ou invalides" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" -msgstr "" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" +msgstr "Inclure toutes les règles IPA actives dans le test [par défaut]" -#: ipalib/plugins/internal.py:233 -msgid "Target" -msgstr "" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" +msgstr "Inclure toutes les règles IPA inactives dans le test" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" -msgstr "" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" +msgstr "Règles non résolues dans --rules" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" -msgstr "" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" +msgstr "Accès autorisé : %s" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" -msgstr "" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" +msgstr "\nSystèmes/Machines\n\nUn système représente une machine, et peut être utilisé dans plusieurs\ncontextes :\n- entrées de services associés à un système\n- un système stocke les entrées des principaux de services host/\n- un système peut être utilisé dans les règles de contrôles d'accès HBAC\n- chaque client inscrit crée une entrée système\n\nINBSCRIPTION :\n\nTrois scenarii d'inscriptions d'un nouveau client sont possibles :\n\n1. La machine est enregistrée par un administrateur de plein droit.\n L'entrée système peut pré-exister ou non. Un administrateur de\n plein droit est membre du rôle hostadmin ou du groupe admins\n2. L'inscription est faite par un administrateur limité. Le système\n doit avoir été préalablement créé. Un administrateur limité\n possède le privilège Host Enrollment.\n3. Le système a été créé avec un mot de passe à usage unique.\n\nUn système peut être inscrit une seule fois. Si un client est déjà\ninscrit et nécessite d'être ré-inscrit, il faut d'abord le supprimer\npuis re-créé. La re-création du système provoquera la perte de tous\nles services du système à supprimer, ainsi que la révocation de tous\nles certificats SSL associés aux services supprimés.\n\nUn système peut de façon optionnelle stocker des informations\ncomplémentaires comme sa localisation, son système d'exploitation, etc.\n\nEXEMPLES :\n\n Ajouter un nouveau système :\n ipa host-add --location=\"labo 3e étage\" --locality=Dallas test.example.com\n\n Supprimer un système :\n ipa host-del test.example.com\n\n Ajouter un système avec un mot de passe à usage unique :\n ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n\n Ajouter un nouveau système avec un mot de passe à usage unique aléatoire :\n ipa host-add --os='Fedora 12' --random test.example.com\n\n Modifier les informations d'un système :\n ipa host-mod --os='Fedora 12' test.example.com\n\n Désactiver la clé Kerberos du système, ses certificats SSL et tous\n ses services :\n ipa host-disable test.example.com\n\n Ajouter un système pouvant administrer le keytab et les certificats\n du système sur lequel la commande est lancée :\n ipa host-add-managedby --hosts=test2 test\n" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" -msgstr "" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" +msgstr "Nom pleinement qualitfié requis" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" +msgstr "Zone DNS inverse introuvable pour l'adresse IP %(addr)s" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" -msgstr "" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" +msgstr "Keytab" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" -msgstr "" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" +msgstr "adresse IP invalide" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" -msgstr "" +#: ipalib/plugins/host.py:216 +msgid "host" +msgstr "système" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "" +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "systèmes" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" -msgstr "" +#: ipalib/plugins/host.py:249 +msgid "Host" +msgstr "Système" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" -msgstr "" +#: ipalib/plugins/host.py:257 +msgid "Host name" +msgstr "Nom de système" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" -msgstr "" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" +msgstr "Description de ce système" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" -msgstr "" +#: ipalib/plugins/host.py:268 +msgid "Locality" +msgstr "Ville" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" -msgstr "" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Ville du système (par ex. \"Paris, IDF\")" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" -msgstr "" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Localisation du système (par ex. \"Lab 2\")" -#: ipalib/plugins/internal.py:261 -msgid "Service" -msgstr "" +#: ipalib/plugins/host.py:278 +msgid "Platform" +msgstr "Plate-forme" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" -msgstr "" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Plate-forme matérielle du système (par ex. \"Lenovo T61\")" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" -msgstr "" +#: ipalib/plugins/host.py:283 +msgid "Operating system" +msgstr "Système d'exploitation" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" -msgstr "" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Système d'exploitation et version (par ex. \"Fedora 9\")" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" -msgstr "" +#: ipalib/plugins/host.py:288 +msgid "User password" +msgstr "Mot de passe utilisateur" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" -msgstr "" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" +msgstr "Mot de passe utilisé pour les inscriptions en masse" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" -msgstr "" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" +msgstr "Crée un mot de passe aléatoire utilisé pour l'inscription en masse" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" -msgstr "" +#: ipalib/plugins/host.py:297 +msgid "Random password" +msgstr "Mot de passe aléatoire" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" -msgstr "" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" +msgstr "Certificat du serveur encodé en Base-64" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" -msgstr "" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" +msgstr "Nom du principal" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" -msgstr "" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." +msgstr "Ajouter un nouveau système." -#: ipalib/plugins/internal.py:293 -msgid "As Whom" -msgstr "" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Système \"%(value)s\" ajouté" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" -msgstr "" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" +msgstr "forcer le nom même si absent des DNS" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" +msgstr "passer outre la détection de DNS inverse" -#: ipalib/plugins/internal.py:297 -msgid "External" -msgstr "" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" +msgstr "Ajouter le système aux DNS avec cette adresse IP" -#: ipalib/plugins/internal.py:300 -msgid "Add User" -msgstr "" +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "Adresse IP" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" -msgstr "" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" +msgstr "Zone DNS %(zone)s introuvable" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" -msgstr "" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" +msgstr "Le système a été ajouté mais la mise à jour DNS a échoué : %(exc)s" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." +msgstr "Supprimer un système." -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" -msgstr "" +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Système \"%(value)s\" supprimé" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" -msgstr "" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" +msgstr "Supprimer les entrées DNS" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" -msgstr "" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." +msgstr "Modifier les informations d'un système." -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" -msgstr "" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Système \"%(value)s\" modifié" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" -msgstr "" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" +msgstr "Nom de principal Kerberos pour ce système" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." +msgstr "Le mot de passe ne peut être défini pour le système enregistré." -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." +msgstr "Rechercher des systèmes." -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" -msgstr "" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "%(count)d système correspondant" +msgstr[1] "%(count)d systèmes correspondants" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" -msgstr "" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" +msgstr "fichier où stocker le certificat" -#: ipalib/plugins/internal.py:319 -msgid "Add" -msgstr "" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" +msgstr "Certificat enregistré dans le fichier '%(file)s'" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" +msgstr "Système \"%(value)s\" désactivé" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" +msgstr "\nGroupes de systèmes.\n\nGestion des groupes de systèmes. Permet d'appliquer des contrôles d'accès\nà plusieurs systèmes en utilisant les contrôles HBAC.\n\nEXEMPLES :\n\n Ajouter un nouveau groupe de systèmes :\n ipa hostgroup-add --desc=\"Systèmes de Baltimore\" baltimore\n\n Ajouter un nouveau groupe de systèmes :\n ipa hostgroup-add --desc=\"Systèmes du Maryland\" maryland\n\n Ajouter des membres à un groupe de systèmes :\n ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n\n Ajouter un groupe de systèmes en tant que membre d'un autre :\n ipa hostgroup-add-member --hostgroups=baltimore maryland\n\n Supprimer un système d'un groupe :\n ipa hostgroup-remove-member --hosts=box2 baltimore\n\n Afficher un groupe de systèmes :\n ipa hostgroup-show baltimore\n\n Supprimer un groupe de systèmes :\n ipa hostgroup-del baltimore\n" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" -msgstr "" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" +msgstr "Groupe de systèmes" -#: ipalib/plugins/internal.py:329 -msgid "Get" -msgstr "" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" +msgstr "Nom du groupe de systèmes" -#: ipalib/plugins/internal.py:330 -msgid "Issue" -msgstr "" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" +msgstr "Description de ce groupe de systèmes" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" -msgstr "" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Groupe de systèmes \"%(value)s\" ajouté" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" -msgstr "" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Groupe de systèmes \"%(value)s\" supprimé" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" -msgstr "" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Groupe de systèmes \"%(value)s\" modifié" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" -msgstr "" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "%(count)d groupe de systèmes correspondant" +msgstr[1] "%(count)d groupes de systèmes correspondants" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." -msgstr "" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" +msgstr "Nom de l'objet à exporter" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." -msgstr "" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" +msgstr "Nom de la méthode à exporter" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" -msgstr "" +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "Dictionnaire d'objets IPA encodés JSON" -#: ipalib/plugins/internal.py:351 -msgid "Member" -msgstr "" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "Dictionnaire de méthode IPA encodées JSON" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" -msgstr "" +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." +msgstr "Votre ticket Kerberos n'est plus valide. Merci de lancer kinit puis de cliquer sur \"Réessayer\". Si cela est votre première utilisation de l'interface Web de IPA, merci de suivre les directices suivantes pour configurer votre navigateur." -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" -msgstr "" +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" +msgstr "Ajouter un objet ${other_entity} à l'objet ${entity} ${primary_key}" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" -msgstr "" +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" +msgstr "Supprimer l'objet ${other_entity} de l'objet ${entity} ${primary_key}" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/internal.py:179 +msgid "Add" +msgstr "Ajouter" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" -msgstr "" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" +msgstr "Ajouter, puis ajouter un nouveau" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." -msgstr "" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" +msgstr "Ajouter et fermer" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" -msgstr "" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" +msgstr "Ajouter et modifier" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" -msgstr "" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" +msgstr "Ajouter plusieurs" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" +msgstr "Annuler" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:185 +msgid "Close" +msgstr "Fermer" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:186 +msgid "Find" +msgstr "Rechercher" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:187 +msgid "Get" +msgstr "Obtenir" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:188 +msgid "Issue" +msgstr "Émettre" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:189 +msgid "OK" +msgstr "OK" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:190 +msgid "Delete" +msgstr "Supprimer" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:191 +msgid "Reset" +msgstr "Réinitialiser" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:192 +msgid "Restore" +msgstr "Restaurer" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:193 +msgid "Retry" +msgstr "Réessayer" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" -msgstr "" +#: ipalib/plugins/internal.py:194 +msgid "Revoke" +msgstr "Révoquer" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:195 +msgid "Update" +msgstr "Modifier" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" -msgstr "" +#: ipalib/plugins/internal.py:196 +msgid "View" +msgstr "Voir" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" -msgstr "" +#: ipalib/plugins/internal.py:201 +msgid "General" +msgstr "Général" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" -msgstr "" +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" +msgstr "Paramètres d'identité" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" -msgstr "" +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" +msgstr "Paramètres de l'objet ${entity} ${primary_key}" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" -msgstr "" +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" +msgstr "Haut de page" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:209 +msgid "Available" +msgstr "Disponible" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." +msgstr "Cette page comporte des modifications non-sauvegardées. Merci de sauvegarder ou de réinitialiser." -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:215 +msgid "Hide details" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" +msgstr "Potentiel" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "" +#: ipalib/plugins/internal.py:239 +msgid "Settings" +msgstr "Paramètres" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." -msgstr "" +#: ipalib/plugins/internal.py:240 +msgid "Search" +msgstr "Rechercher" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" -msgstr "" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" +msgstr "Connecté en tant que" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:248 +msgid "Attribute" +msgstr "Attribut" + +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" +msgstr "Détail d'un lieu d'automontage" + +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/migration.py:375 +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" +msgstr "Autorité d'attribut compromise" + +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "L'affiliation a changé" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "AC compromise" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "Certificat bloqué" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "Cessation d'activité" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "Nom usuel" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "Copier le CSR encodé en base 64 ci-dessous" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "Expire le" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "Condensés" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "Émettre un nouveau certificat pour l'objet ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "Émis par" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "Émis le" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "Émis pour" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "Clé compromise" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "Condensé MD5" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "Pas de certificat valide" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "Nouveau certificat" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "Note" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" +msgstr "Organisation" + +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "Unité organisationnelle" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "Privilège retiré" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "Raison de la révocation" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "Retrait de la LRC" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "Restaurer un certificat pour ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " -msgstr "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." +msgstr "Afin de confirmer votre intention de restaurer ce certificat, cliquer sur le bouton \"Restaurer\"." + +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "Révoquer un certificat pour l'objet ${entity} ${primary_key}" -#: ipalib/plugins/migration.py:399 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " -msgstr "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "Afin de confirmer votre intention de révoquer ce certificat, sélectionner une raison dans la liste, puis de cliquer sur le bouton \"Révoquer\"." -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "Certificat révoqué" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "Condensé SHA1" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "Obsolète" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "Non-spécifié" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "Certificat validé présent" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "Validité" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "Certificat pour l'objet ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "Données" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "Enregistrements pour la zone DNS" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "Paramètres de zone DNS" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "État" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "Paramètres de groupe" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "Ce groupe est-il POSIX ?" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "Actif" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "N'importe quel système" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "N'importe quel service" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "N'importe qui" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "Accédant à" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "Inactif" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "État de la règle" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "Via le service" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "Depuis" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "Systèmes et groupes spécifiques" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "Services et groupes spécifiques" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "Utilisateurs et groupes spécifiques" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "Qui" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "Certificat de système" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "Nom de système" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "Supprimer la clé, décommissionner" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "Paramètres de système" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "Inscrit ?" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "Inscription" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "Nom de système pleinement qualifié" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "Clé Kerberos absente" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "Clé Kerberos présente, système provisionné" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "Paramétrer le mot de passe à usage unique" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "Décommissioner" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "Êtes-vous sûr de vouloir décommissionner ce système ?" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "Décommissionnement de l'objet ${entity}" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "Paramètres du groupe de systèmes" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "Politique des tickets Kerberos" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "Paramètres du netgroup" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "Identité" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "Permission avec spécification de cible invalide" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "Cible" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "Paramètres du privilège" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "Politique de gestion des mots de passe" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "Paramètres de rôles" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "Certificat de service" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "Paramètres de service" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "Commissionnement" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "Êtes-vous sûr de vouloir décommissionner ce service ?" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "Clé Kerberos présente, service commissionné" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "Groupes" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "Commandes" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "Autoriser" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "Toute commande" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "Tout groupe" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "Exécute les commandes" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "Interdire" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "Externe" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "Accède ce système" + +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "En tant que" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "Commandes et groupes spécifiés" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "Groupes spécifiés" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "Paramètres de compte" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -#: ipalib/plugins/permission.py:177 +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Add a new permission.\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " -msgstr "" +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "Paramètres de contact" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "Informations employé" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "Erreur lors du changement d'état du compte" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "Adresse postale" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "Informations diverses" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "Nouveau mot de passe" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "Modification du mot de passe terminée" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "Les mots de passe doivent correspondre" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "Réinitialiser le mot de passe" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "Êtes-vous sûr de vouloir supprimer les entrées sélectionnées ?" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:428 +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "Liens rapides" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "Tout sélectionner" + +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Add members to a permission.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "La recherche a retourné plus de résultats que le nombre limite configuré. Affichage des ${counter} premiers résultats." + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "Tout déselectionner" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "Audit" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "Automontage" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "Contrôlé d'accès basé sur les systèmes (HBAC)" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "Serveur IPA" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "Politique" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "Contrôle d'accès basé sur les rôles (RBAC)" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "Sudo" + +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "Le texte ne correspond pas au motif de champ" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/privilege.py:19 +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "Dictionnaire de messages I18N" + +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Privileges\n" +"Kerberos ticket policy\n" "\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" "\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" +"You can also create a per-user ticket policy by specifying the user login.\n" "\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" "\n" -"A privilege may not contain other privileges.\n" +"service krb5kdc restart\n" "\n" -"See role and permission for additional information.\n" -msgstr "" - -#: ipalib/plugins/privilege.py:45 -msgid "" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" -" Privilege object.\n" -" " -msgstr "" - -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" -msgstr "" - -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" -msgstr "" - -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" -msgstr "" - -#: ipalib/plugins/privilege.py:85 -msgid "" +"EXAMPLES:\n" "\n" -" Add a new privilege.\n" -" " -msgstr "" - -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/privilege.py:95 -msgid "" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -" Delete a privilege.\n" -" " -msgstr "" - -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/privilege.py:105 -msgid "" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" "\n" -" Modify a privilege.\n" -" " -msgstr "" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "\nPolitique de ticket Kerberos\n\nIl n'existe qu'une unique politique de ticket Kerberos. Cette politique\ndéfinit la durée de vie maximale des tickets, ainsi que l'âge maximal de\nrenouvellement, période pendant laquelle le ticket est renouvelable.\n\nVous pouvez aussi créer une politique par utilisateur en spécifiant\nl'identifiant de l'utilisateur.\n\nPour que les changements à la politique globale s'appliquent, il est \nnécessaire de redémarrer le service KDC, par exemple :\n\nservice krb5kdc restart\n\nLes changements à une politique spécifique à un utilisateur prennent effet\nimmédiatement pour les tickets nouvellement demandés (i.e. quand\nl'utilisateur lance kinit).\n\nEXEMPLES :\n\n Affiche la politique actuelle de ticket Kerberos :\n ipa krbtpolicy-show\n\n Réinitialise la politique aux valeurs par défaut :\n ipa krbtpolicy-reset\n\n Modifie la politique à 8 heures de durée de vie, 1 journée de durée\n maximale de renouvellement :\n ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n\n Affiche la politique actuelle de ticket Kerberos de l'utilisateur 'admin' :\n ipa krbtpolicy-show admin\n\n Réinitialise la politique de ticket Kerberos de l'utilisateur 'admin' :\n ipa krbtpolicy-reset admin\n\n Modifie la politique de ticket Kerberos de l'utilisateur 'admin' :\n ipa krbtpolicy-mod admin --maxlife=3600\n" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " -msgstr "" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "Politique de ticket Kerberos" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "Administre la politique de ticket d'un utilisateur spécifique" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " -msgstr "" +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "Vie max." -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " -msgstr "" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "Durée de vie maximale (secondes)" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " -msgstr "" +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "Renouvellement max." -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " -msgstr "" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "Âge maximale de renouvellement (secondes)" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/migration.py:34 msgid "" "\n" -"Password policy\n" +"Migration to IPA\n" "\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"The default user container is ou=People.\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"The default group container is ou=Groups.\n" "\n" -"EXAMPLES:\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" "\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "Le principal Kerberos %s existe déjà. Utiliser la commande 'ipa user-mod' pour le créer manuellement." + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "Échec à l'ajout de l'utlisateur dans le groupe par défaut. Utiliser la commande 'ipa group-add-member' pour l'ajouter manuellement." + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Password Policy object\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" -msgstr "" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "URI LDAP invalide." -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" -msgstr "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "URI LDAP" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" -msgstr "" +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "URI LDAP du serveur d'annuaire depuis lequel migrer" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" -msgstr "" +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "mot de passe de connexion" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" -msgstr "" +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "DN de connexion" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" -msgstr "" +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "Conteneur d'utilisateurs" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" -msgstr "" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "RDN du conteneur d'utilisateurs dans l'annuaire" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" -msgstr "" +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "Conteneur de groupes" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" -msgstr "" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "RDN du conteneur de groupes dans l'annuaire" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" -msgstr "" +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "Classes d'objet utilisateur" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" -msgstr "" +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "Liste séparée par des virgules des classes d'objet à utiliser pour la recherche d'entrées utilisateurs dans l'annuaire" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" -msgstr "" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "Classes d'objets groupes" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "Liste séparée par des virgules des classes d'objet à utiliser pour la recherche d'entrées groupes dans l'annuaire" + +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Add a new group password policy.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "Schéma LDAP" + +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -" Delete a group password policy.\n" -" " +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "Le schéma utilisé sur le serveur LDAP. Les valeurs supportées sont RFC2307 et RFC2307bis. La valeur par défaut est RFC2307bis" + +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:380 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Modify a group password policy.\n" -" " -msgstr "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "Mode continu. Les erreurs sont rapportées mais le processus continue" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "Liste des objets migrés, catégorisés par type." + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "Liste des objets n'ayant pu être migrés, catégorisés par type." + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "Faux si le mode de migration est désactivé." + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "Liste séparée par des virgules des %s à exclure de la migration" + +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "les résultats de la recherche sur les objets\nà migrer a été tronquée par le server ; le\nprocessus peut donc être incomplet\n" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "Mode migration désactivé. Utiliser la commande 'ipa config-mod' pour l'activer." + +#: ipalib/plugins/migration.py:448 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "Les mots de passe ont été migré dans leur format chiffré.\nIPA est incapable de créer des clés Kerberos sauf à\nutiliser les mots de passe en clair. Tous les utilisateurs\nmigrés devront se connecter à https://your.domain/ipa/migration/\navant de pouvoir utiliser leur compte Kerberos." + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "Conteneur pour %(container)s introuvable" -#: ipalib/plugins/pwpolicy.py:423 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Display information about password policy.\n" -" " -msgstr "" +"Misc plug-ins\n" +msgstr "\nGreffons divers\n" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" -msgstr "" +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d variables" -#: ipalib/plugins/pwpolicy.py:452 +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Search for group password policies.\n" -" " +"retrieve and print all attributes from the server. Affects command output." +msgstr "récupère et affiche tous les attributs du serveur. Modifie la sortie de la commande." + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "Nombre total de variables d'environnement (>= count)" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "Nombre de variables renvoyées (<= total)" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "%(count)d greffon chargé" +msgstr[1] "%(count)d greffons chargés" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" +msgstr "Nombre de greffons chargés" + +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" -msgstr "" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" +msgstr "\nNetgroups\n\nUn netgroup est un groupe utilisé pour la vérification de permissions. Il\npeut contenir à la fois des utilisateurs et des noms de systèmes.\n\nEXEMPLES :\n\n Ajouter un nouveau netgroup :\n ipa netgroup-add --desc=\"NFS admins\" admins\n\n Ajouter des membres au netgroup :\n ipa netgroup-add-member --users=tuser1,tuser2 admins\n\n Retirer un membre du netgroup :\n ipa netgroup-remove-member --users=tuser2 admins\n\n Afficher les informations sur un netgroup :\n ipa netgroup-show admins\n\n Supprimer un netgroup :\n ipa netgroup-del admins\n" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " -msgstr "" +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" +msgstr "Système membre" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" -msgstr "" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "Netgroups" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" -msgstr "" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "Nom de netgroup" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " -msgstr "" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "Description de netgroup" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "Nom de domaine NIS" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" +msgstr "ID unique IPA" + +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:121 +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "Netgroup \"%(value)s\" ajouté" + +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Modify a role.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "Netgroup \"%(value)s\" supprimé" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "Netgroup \"%(value)s\" supprimé" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "%(count)d netgroup correspondant" +msgstr[1] "%(count)d netgroups correspondants" + +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " -msgstr "" +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "\nDéfinir le mot de passe d'un utilisateur\n\nSi une personne autre que l'utilisateur change le mot de passe de cet\nutilisateur (par exemple en cas de réinitialisation par les services\nd'assistance technique), le mot de passe devra être modifié la première\nfois qu'il sera utilisé, afin que l'utilisateur soit le seul à connaître\nson mot de passe.\n\nLa politique de mot de passe de IPA contrôle la fréquence de changement\ndes mots de passe, les prérequis quant à leur résistance, et la taille\nde l'historique des mots de passe.\n\nEXEMPLES :\n\n Modifier son mot de passe :\n ipa passwd\n\n Modifier le mot de passe d'un utilisateur :\n ipa passwd tuser1\n" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "Mot de passe modifié for \"%(value)s\"" + +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"EXAMPLES:\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " -msgstr "" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "\nPermissions\n\nUne permission permet une définition fine des délégations de droits. Une\npermission est une forme lisible par un humain des règles ou instructions\nde contrôle d'accès (ACI) de 389-ds. Une permission accorde le droit\nd'effectuer une tâche spécifique comme la création d'un utilisateur, la\nmodification d'un groupe, etc.\n\nUne permission ne peut contenir d'autres permissions.\n\n* Une permission accorde un droit en lecture, écriture, ajout ou supression.\n* Un privilège combine des permissions similaires (par exemple toutes les\n permissions requises pour la création d'un utilisateur).\n* Un rôle accorde un jeu de privilèges à des utilisateurs, des groupes, des\n systèmes, ou à des groupes de systèmes.\n\nUne permission est constitués des éléments suivants :\n\n1. Le nom de la permission.\n2. La cible de la permission.\n3. Les droits accordés par la permission.\n\nLes droits définissent quelles opérations sont autorisées, et\npeuvent être une ou plusieurs parmi :\n1. write - écrire un ou plusieurs attributs\n2. read - lire un ou plusieurs attributs\n3. add - ajouter une nouvelle entrée dans l'arbre\n4. delete - supprimer une entrée existante\n5. all - toutes les permissions sont accordées\n\nLa permission read est accordée par défaut sur la plupart des\nattributs, elle ne sera donc utilisée que peu souvent.\n\nNotez la distinction entre attributs and entrées. Les permissions sont\nindépendantes, donc la capacité de créer un utilisateur ne signifie pas\nque l'utilisateur sera modifiable.\n\nIl existe plusieurs sortes de cibles autorisées dans une permission :\n1. type: un type d'objet (user, group, etc.).\n2. memberof: un membre d'un groupe ou d'un groupe de systèmes\n3. filter: un filtre LDAP\n4. subtree: un filtre LDAP spécifiant une branche du DIT LDAP. Ceci est un\n sur-ensemble de la cible 'type'.\n5. targetgroup: accorde l'accès permettant de modifier un groupe spécifique\n (comme le fait d'accorder les droits en modification des membres d'un groupe)\n\nEXEMPLES :\n\n Ajouter une permission accordant la création d'utilisateurs :\n ipa permission-add --type=user --permissions=add \"Add Users\"\n\n Ajouter une permission accordant la capacité de gérer les membres d'un groupe :\n ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" -msgstr "" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "Type de permission" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" -msgstr "" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "Nom de permission" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " -msgstr "" - -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" -msgstr "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "Liste séparée par des virgules des permissions à accorder (read, write, add, delete, all)" -#: ipalib/plugins/selfservice.py:137 +#: ipalib/plugins/permission.py:135 msgid "" -"\n" -" Delete a self-service permission.\n" -" " -msgstr "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "Type d'objet IPA (user, group, host, hostgroup, service, netgroup, dns)" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "Membre du groupe" + +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "Membres cible d'un groupe" + +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "Branche sur laquelle appliquer les permissions" + +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "Groupe d'utilisateur sur lequel appliquer les permissions" + +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "Permission \"%(value)s\" ajoutée" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "Permission \"%(value)s\" supprimée" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "Permission \"%(value)s\" modifiée" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "%(count)d permission correspondante" +msgstr[1] "%(count)d permissions correspondantes" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "\nSonder le serveur IPA distant\n" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\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" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"For more information on anonymous pkinit see:\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "\nOptions Kerberos pkinit\n\nActive ou désactive l'opération pkinit anonyme utilisant\nle principal WELLKNOWN/ANONYMOUS@REALM. Le serveur doit avoir\nété installé avec le support pkinit.\n\nEXEMPLES :\n\n Active le pkinit anonyme :\n ipa pkinit-anonymous enable\n\n Désactive le pkinit anonyme :\n ipa pkinit-anonymous disable\n\nPour plus d'informations sur l'opération pkinit anonyme, cf. :\n\nhttp://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "pkinit" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "PKINIT" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." +msgstr "Active ou désactive le pkinit anonyme" + +#: ipalib/plugins/privilege.py:23 +msgid "" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +"Privileges\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -msgstr "" - -#: ipalib/plugins/service.py:162 -msgid "" +"A privilege may not contain other privileges.\n" "\n" -" For now just verify that it is properly base64-encoded.\n" -" " -msgstr "" +"See role and permission for additional information.\n" +msgstr "\nPrivilèges\n\nUn privilège combine les permissions en tâches logiques. Une permission\nfournit les droits de réaliser une tâche unique. Certaines opérations IPA\nrequièrent une combinaison de plusieurs permissions. Un privilège est la\ncombinaison de ces permissions pour réaliser une tâche.\n\nPar example, la création d'utilisateur requiert les permissions suivantes :\n * Création d'une nouvelle entrée\n * Réinitialisation du mot de passe\n * Ajout du nouvel utilisateur au groupe d'utilisateurs par défaut de IPA\n\nLa combinaison de ces trois tâches de bas niveau en privilège nommé \"Add User\"\nfacilite la gestion des rôles.\n\nUn privilège ne peut contenir d'autres privilèges.\n\nReportez-vous la gestion des rôles et des permissions pour plus d'informations.\n" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" -msgstr "" +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" +msgstr "Privilèges" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" -msgstr "" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" +msgstr "Nom du privilège" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" -msgstr "" +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" +msgstr "Description du privilege" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" -msgstr "" +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "Privilège \"%(value)s\" ajouté" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" -msgstr "" +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "Privilège \"%(value)s\" supprimé" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "Privilège \"%(value)s\" supprimé" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "%(count)d privilège correspondant" +msgstr[1] "%(count)d privilèges correspondants" + +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "Nombre de permissions ajoutées" + +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" +msgstr "Nombre de permissions supprimées" + +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -msgstr "" - -#: ipalib/plugins/sudocmd.py:46 -msgid "" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Sudo Command object.\n" -" " -msgstr "" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" +"\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" +msgstr "\nPolitique de mots de passe\n\nUne politique de mots de passe permet de définir des limites sur les mots\nde passe dans IPA, comme leur durée de vie, minimale ou maximale, la taille\nde l'historique de mots de passe, le nombre de classes de caractères requises\n(pour la résistance à force brute) et la longueur minimale du mot de passe.\n\nPar défaut, une politique unique et globale est définie pour tous les\nutilisateurs. Vous pouvez aussi créer une politique à appliquer à un groupe.\nChaque utilisateur est l'objet d'une seule politique de mots de passe, par\nun groupe ou par la politique globale. Une politique de groupe remplace\ntotalement la politique globale ; elle n'est pas la somme de la politique\nglobale plus quelques paramètres spécifiques.\n\nChaque politique de groupe requiert un paramètre de priorité unique. Si un\nutilisateur appartient à plusieurs groupes ayant des politiques différentes,\nla priorité sera utilisée afin de déterminer quelle politique appliquer. Une\nvaleur inférieure indique une priorité supérieure pour la politique de mots\nde passe.\nLes politiques de mots de passe sont automatiquement supprimées lorsque les\ngroupes auxquels elles sont associées sont supprimés.\n\nEXEMPLES :\n\n Modifier la politique globale :\n ipa pwpolicy-mod --minlength=10\n\n Ajouter une nouvelle politique de groupe :\n ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n\n Afficher la politique de mots de passe globale :\n ipa pwpolicy-show\n\n Afficher une politique de mots de passe de groupe :\n ipa pwpolicy-show localadmins\n\n Afficher la politique applicable à un utilisateur :\n ipa pwpolicy-show --user=tuser1\n\n Modifier une politique de mots de passe de groupe :\n ipa pwpolicy-mod --minclasses=2 localadmins\n" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" -msgstr "" +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "la priorité doit être une valeur unique (%(prio)d déjà utilisée par %(gname)s)" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" +msgstr "Nombre maximal d'échecs" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" -msgstr "" +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" +msgstr "Échec consécutif avant verrouillage" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" +msgstr "Intervalle de réinitialisation sur échec" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" -msgstr "" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" +msgstr "Période après laquelle le compteur d'échec sera réinitialisé (secondes)" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" +msgstr "Durée de verrouillage" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" -msgstr "" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" +msgstr "Période pendant laquelle le verrouillage est actif (secondes)" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" +msgstr "Groupe" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "Gérer la politique de mots de passe d'un groupe spécifique" + +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "Durée de vie maximale (jours)" + +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" +msgstr "Durée de vie maximale d'un mot de passe (en jours)" + +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" +msgstr "Durée de vie minimale (jours)" + +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" +msgstr "Durée de vie maximale d'un mot de passe (en jours)" + +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" +msgstr "Taille de l'historique" + +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" +msgstr "Taille de l'historique des mots de passe" + +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "Classes de caractères" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" +msgstr "Nombre minimal de classes de caractères" + +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" +msgstr "Longueur minimale" + +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "Taille minimale d'un mot de passe" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" -msgstr "" +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "Priorité" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "Priorité de la polique (une valeur élevé indique une priorité basse)" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" -msgstr "" +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "La durée de vie maximale du mot de passe doit être supérieure au minimum." -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "la priorité ne peut être définie sur la politique globale" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "Utilisateur" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "Afficher la politique effective sur un utilisateur spécifique" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Privileges are assigned to Roles.\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Roles can not contain other roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +"EXAMPLES:\n" "\n" -" Sudo Rule management\n" -" " -msgstr "" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" +"\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" +msgstr "\nRôles\n\nLes rôles sont utilisés pour les délégations fines. Une permission accorde\nla capacité d'effectuer une tâche de bas niveau (ajouter un utilisateur,\nmodifier un groupe, etc.). Un privilège combine une ou plusieurs permissions\nen une abstraction de plus haut niveau comme useradmin. Un administrateur\nd'utilisateur (useradmin) sera capable d'ajouter, modifier et supprimer des\nutilisateurs.\n\nLes privilèges sont attribués aux Rôles.\n\nPeuvent être membres d'un rôle des utilisateurs, des groupes, des systèmes\net des groupes de systèmes.\n\nLes rôles ne peuvent contenir d'autres rôles.\n\nEXEMPLES :\n\n Ajouter un nouveau rôle :\n ipa role-add --desc=\"Junior-level admin\" junioradmin\n\n Ajouter des privilèges à ce rôle :\n ipa role-add-privilege --privileges=addusers junioradmin\n ipa role-add-privilege --privileges=change_password junioradmin\n ipa role-add-privilege --privileges=add_user_to_default_group junioradmin\n\n Ajouter un groupe d'utilisateurs à ce rôle :\n ipa group-add --desc=\"User admins\" useradmins\n ipa role-add-member --groups=useradmins junioradmin\n\n Afficher les informations sur un rôle :\n ipa role-show junioradmin\n\n Le résultat des commandes ci-dessus est que le groupe 'junioradmin' peut\n ajouter des utilisateurs, réinitialiser des mots de passe, ou ajouter\n un utilisateur au groupe d'utilisateur par défaut de IPA.\n" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:82 +msgid "Role" +msgstr "Rôle" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" -msgstr "" +#: ipalib/plugins/role.py:87 +msgid "Role name" +msgstr "Nom du rôle" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "Description de ce rôle" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Rôle \"%(value)s\" ajouté" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" -msgstr "" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Rôle \"%(value)s\" supprimé" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" -msgstr "" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Rôle \"%(value)s\" modifié" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "%(count)d rôle correspondant" +msgstr[1] "%(count)d rôles correspondants" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " -msgstr "" +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" +msgstr "Nombre de privilèges ajoutés" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " -msgstr "" +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" +msgstr "Nombre de privilèges retirés" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:247 -msgid "" "\n" -" Disable a Sudo rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" +"EXAMPLES:\n" "\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" "\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:313 -msgid "" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" "\n" -" Add users and groups affected by Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:349 -msgid "" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" "\n" -" Remove users and groups affected by Sudo Rule.\n" -" " -msgstr "" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" +msgstr "\nPermissions self-service\n\nUne permission permet la délégation fine de permissions. Les règles ou\ninstructions de contrôle d'accès (ACI) accorde la permission d'effectuer\ndes tâches spécifiques comme ajouter un utilisateur, modifier un groupe, etc.\n\nUne permission self-service définit ce qu'un objet peut modifier dans sa\npropre entrée.\n\n\nEXEMPLES :\n\n Ajouter une règle self-service permettant aux utilisateurs de gérer leur adresse :\n ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n\n Tous les attributs doivent être mentionnés lors de l'utilisation de listes d'attributs,\n y compris ceux déjà existants. Ajouter telephoneNumber à la liste :\n ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n\n Afficher la règle modifiée :\n ipa selfservice-show \"Users manage their own address\"\n\n Supprimer une règle :\n ipa selfservice-del \"Users manage their own address\"\n" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" +msgstr "Permission self-service '%(permission)s' introuvable" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" +msgstr "permission self-service" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" +msgstr "permissions self-service" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" +msgstr "Permissions Self-Service" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" +msgstr "Permission Self-Service" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" +msgstr "Nom de la permission self-service" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." +msgstr "Ajouter une nouvelle permission self-service." -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" -msgstr "" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" +msgstr "Permission self-service \"%(value)s\" ajoutée" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " -msgstr "" +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." +msgstr "Supprimer une permission self-service." + +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "Permission selfservice \"%(value)s\" supprimée" + +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." +msgstr "Modifier une permission self-service." + +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" +msgstr "Permission selfservice \"%(value)s\" modifiée" + +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." +msgstr "Rechercher des permissions self-service." + +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "%(count)d permission self-service correspondante" +msgstr[1] "%(count)d permissions self-service correspondantes" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." +msgstr "Afficher les informations sur une permission self-service." -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" "\n" -" User object.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "" - -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "" - -#: ipalib/plugins/user.py:127 -msgid "Last name" -msgstr "" - -#: ipalib/plugins/user.py:130 -msgid "Full name" -msgstr "" - -#: ipalib/plugins/user.py:135 -msgid "Display name" -msgstr "" - -#: ipalib/plugins/user.py:140 -msgid "Initials" -msgstr "" - -#: ipalib/plugins/user.py:146 -msgid "Home directory" -msgstr "" - -#: ipalib/plugins/user.py:150 -msgid "GECOS field" -msgstr "" - -#: ipalib/plugins/user.py:156 -msgid "Login shell" -msgstr "" - -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" -msgstr "" - -#: ipalib/plugins/user.py:168 -msgid "Email address" -msgstr "" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "\nServices\n\nUn service IPA représente un service tournant sur un système.\nL'enregistrement de service IPA peut stocker un principal Kerberos,\nun certificat SSL, ou les deux.\n\nUn service IPA peut être directement administré depuis la machine,\npourvu que la machine ait reçu les permissions adéquates. Cela est\naussi vrai pour les machines autres que celles associées au service.\nPar exemple, demander un certificat SSL en utilisant les informations de\ncrédit du principal de service du système sur le système. Pour administrer\nle service à l'aide des données de crédit, il faut lancer kinit en tant\nque le système :\n\n # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n\nLe fait d'ajouter un service IPA permet au service associé de demander un\ncertificat SSL ou un keytab. Ces opérations doivent être réalisées\nséparément, elles ne sont pas le résultat de l'ajout du service.\n\nSeul la partie publique d'un certificat est stockée dans l'enregistrement\nde service, la clé privée n'est pas stockée.\n\nEXEMPLES :\n\n Ajouter un nouveau service IPA :\n ipa service-add HTTP/web.example.com\n\n Autoriser un système à gérer le certificat du service IPA :\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 Supprimer un service IPA :\n ipa service-del HTTP/web.example.com\n\n Rechercher tous les services IPA associés à un système :\n ipa service-find web.example.com\n\n Rechercher tous les services HTTP :\n ipa service-find HTTP\n\n Disable the service Kerberos key and SSL certificate:\n ipa service-disable HTTP/web.example.com\n\n Request a certificate for an IPA service:\n ipa cert-request --principal=HTTP/web.example.com example.csr\n\n Generate and retrieve a keytab for an IPA service:\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n\n" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" -msgstr "" +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "Principal du service" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" -msgstr "" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Service \"%(value)s\" ajouté" -#: ipalib/plugins/user.py:197 -msgid "City" -msgstr "" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "forcer le nom du principal même si absent du DNS" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" -msgstr "" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Service \"%(value)s\" supprimé" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" -msgstr "" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Service \"%(value)s\" modifié" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" -msgstr "" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "%(count)d service correspondant" +msgstr[1] "%(count)d services correspondants" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" -msgstr "" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Service \"%(value)s\" désactivé" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -" Given a userid verify the user's existence and return the dn.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" -msgstr "" - -#: ipalib/plugins/user.py:281 -msgid "" +"Sudo Commands\n" "\n" -" Convert a manager dn into a userid\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:295 -msgid "" +"Commands used as building blocks for sudo\n" "\n" -" Add a new user.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" -msgstr "" - -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" -msgstr "" - -#: ipalib/plugins/user.py:400 -msgid "" +"EXAMPLES:\n" "\n" -" Delete a user.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/user.py:413 -msgid "" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Modify a user.\n" -" " -msgstr "" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" +msgstr "\nCommandes sudo\n\nCommandes utilisées en tant que briques de base pour sudo\n\nEXEMPLES :\n\n Ajouter une nouvelle commande\n ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n\n Supprimer une commande\n ipa sudocmd-del /usr/bin/less\n\n" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" -msgstr "" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" +msgstr "Commandes sudo" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" +msgstr "Commande sudo" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" +msgstr "Description de la commande" + +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/virtual.py:28 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" +"Groups of Sudo Commands\n" "\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" +"Manage groups of Sudo Commands.\n" "\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" +"EXAMPLES:\n" "\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " -msgstr "" - -#: ipalib/plugins/virtual.py:44 -msgid "" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Perform an LDAP query to determine authorization.\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" "\n" -" This should be executed before any actual work is done.\n" -" " -msgstr "" - -#: ipalib/plugins/xmlclient.py:21 -msgid "" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" "\n" -"XML-RPC client plugin.\n" -msgstr "" - -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "" - -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" -msgstr "" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" +msgstr "Groupe de commandes sudo" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/errors.py:318 +#: ipalib/plugins/sudocmdgroup.py:97 #, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudocmdgroup.py:105 #, python-format -msgid "an internal error has occurred on server at %(server)r" +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudocmdgroup.py:113 #, python-format -msgid "error on server %(server)r: %(error)s" +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudocmdgroup.py:122 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "" +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:25 +msgid "" +"\n" +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" +msgstr "Règle sudo" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "Catégorie de commande" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:124 +msgid "Command category the rule applies to" +msgstr "Catégorie de commande à laquelle la règle s'applique" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" +msgstr "Commandes sudo allow" -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" +msgstr "Commande sudo deny" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" +msgstr "Utilisateur externe" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" +msgstr "Lancer en tant que l'utilisateur externe" + +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "Utilisateur externe" + +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" +msgstr "Option sudo" + +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/sudorule.py:218 +#, python-format +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:1034 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Base64 decoding failed: %(reason)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/sudorule.py:234 +#, python-format +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:1160 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "'%(entry)s' doesn't have a certificate." +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:1192 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:1407 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "Certificate format error: %(error)s" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/sudorule.py:710 +#, python-format +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" +msgstr "\nUtilisateurs\n\nAdministration des utilisateurs. Tous les utilisateurs sont de type POSIX.\n\nIPA permet l'utilisation d'un grand nombre de formats de noms d'utilisateurs.\nCertaines restrictions peuvent cependant s'appliquer à un environnement\nparticulier. À titre d'exemple, les noms d'utilisateurs commençant par\nun chiffre ou ceux excédant une certaine longueur peuvent poser souci à\ncertains systèmes UNIX.\nUtiliser la commande 'ipa config-mod' afin de modifier le format de nom\nautorisé par les outils IPA.\n\nLa désactivation d'un compte utilisateur lui interdit d'obtenir de\nnouvelles informations de crédit Kerberos. Elle n'invalide pas les crédits\ndéjà obtenus.\n\nL'administration des mots de passe ne fait pas partie de ce module. Pour\nplus d'informations sur ce sujet, cf. : ipa help passwd\n\nEXEMPLES :\n\n Ajouter un nouvel utilisateur :\n ipa user-add --first=Tim --last=User --password tuser1\n\n Trouver tous les utilisateurs dont l'entrée contient la chaîne \"Tim\":\n ipa user-find Tim\n\n Trouver tous les utilisateurs ayant \"Tim\" comme prénom :\n ipa user-find --first=Tim\n\n Désactiver un compte utilisateur :\n ipa user-disable tuser1\n\n Activer un compte utilisateur :\n ipa user-enable tuser1\n\n Supprimer un utilisateur :\n ipa user-del tuser1\n" + +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" -msgstr "" +#: ipalib/plugins/user.py:177 +msgid "User login" +msgstr "Identifiant de connexion" + +#: ipalib/plugins/user.py:184 +msgid "First name" +msgstr "Prénom" + +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "Nom" + +#: ipalib/plugins/user.py:191 +msgid "Full name" +msgstr "Nom complet" + +#: ipalib/plugins/user.py:196 +msgid "Display name" +msgstr "Nom affiché" + +#: ipalib/plugins/user.py:201 +msgid "Initials" +msgstr "Initiales" + +#: ipalib/plugins/user.py:207 +msgid "Home directory" +msgstr "Répertoire utilisateur" + +#: ipalib/plugins/user.py:212 +msgid "GECOS field" +msgstr "Champ GECOS" + +#: ipalib/plugins/user.py:218 +msgid "Login shell" +msgstr "Shell de connexion" + +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" +msgstr "Principal Kerberos" + +#: ipalib/plugins/user.py:231 +msgid "Email address" +msgstr "Adresse courriel" + +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "Invite de modification du mot de passe" + +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "UID" + +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" +msgstr "Numéro d'identifiant utilisateur (le système en assignera un si non spécifié)" + +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" +msgstr "Numéro d'identifiant de groupe" + +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "Adresse" + +#: ipalib/plugins/user.py:261 +msgid "City" +msgstr "Ville" + +#: ipalib/plugins/user.py:265 +msgid "State/Province" +msgstr "État/province" + +#: ipalib/plugins/user.py:268 +msgid "ZIP" +msgstr "Code postal" + +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" +msgstr "Numéro de téléphone" + +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "Numéro de téléphone mobile" + +#: ipalib/plugins/user.py:278 +msgid "Pager Number" +msgstr "Numéro de téléavertisseur" + +#: ipalib/plugins/user.py:282 +msgid "Fax Number" +msgstr "Numéro de fax" + +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" +msgstr "Unité organisationnelle" + +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "Titre de poste" + +#: ipalib/plugins/user.py:292 +msgid "Manager" +msgstr "Responsable" + +#: ipalib/plugins/user.py:295 +msgid "Car License" +msgstr "Carte d'identité" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" -msgstr "" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" +msgstr "Compte désactivé" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" -msgstr "" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" +msgstr "responsable %(manager)s introuvable" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "" +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Utilisateur \"%(value)s\" ajouté" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" +msgstr "Ne pas créer de groupe privé" -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" +msgstr "doit contenir au plus %(len)d caractères" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:477 #, python-format -msgid "must be at least %(minvalue)d" +msgid "Deleted user \"%(value)s\"" +msgstr "Utilisateur \"%(value)s\" supprimé" + +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:1064 +#: ipalib/plugins/user.py:488 #, python-format -msgid "can be at most %(maxvalue)d" -msgstr "" +msgid "Modified user \"%(value)s\"" +msgstr "Utilisateur \"%(value)s\" modifié" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:517 +msgid "Self" +msgstr "Moi-même" + +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" +msgstr "Afficher l'enregistrement utilisateur pour le principal Kerberos actuel" + +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)f" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d utilisateur correspondant" +msgstr[1] "%(count)d utilisateurs correspondants" + +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" +msgid "Disabled user account \"%(value)s\"" +msgstr "Compte utilisateur \"%(value)s\" désactivé" -#: ipalib/parameters.py:1192 -msgid "must be binary data" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must be at least %(minlength)d bytes" +msgid "Enabled user account \"%(value)s\"" +msgstr "Compte utilisateur \"%(value)s\" activé" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "" +msgid "Unlocked account \"%(value)s\"" +msgstr "Compte utilisateur \"%(value)s\" déverrouillé" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" -msgstr "" +msgid "Permission denied: %(file)s" +msgstr "Autorisation refusée : %(file)s" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" -msgstr "" +msgstr "L'Émetteur \"%(issuer)s\" ne correspond pas à l'émetteur attendu" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" -msgstr "" +msgstr "Impossible de communiquer avec le CMS (%s)" #: ipaserver/plugins/join.py:54 msgid "The hostname to register as" -msgstr "" +msgstr "Le nom de système sous lequel s'enregistrer" #: ipaserver/plugins/join.py:62 msgid "The IPA realm" -msgstr "" +msgstr "Le domaine IPA" #: ipaserver/plugins/join.py:68 msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "" +msgstr "Plate-forme matérielle du système (par ex. Lenovo T61)" #: ipaserver/plugins/join.py:72 msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "Système d'exploitation et version du système (par ex. Fedora 9)" + +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" msgstr "" #: ipaserver/plugins/selfsign.py:99 @@ -7163,652 +7299,652 @@ msgstr "" msgid "" "Request subject \"%(request_subject)s\" does not match the form " "\"%(subject_base)s\"" -msgstr "" +msgstr "Le sujet de la demande \"%(request_subject)s\" ne correspondant pas à la forme \"%(subject_base)s\"" #: ipaserver/plugins/selfsign.py:104 #, python-format msgid "unable to decode csr: %s" -msgstr "" +msgstr "impossible de décoder le csr : %s" #: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140 msgid "file operation" -msgstr "" +msgstr "opération fichier" #: ipaserver/plugins/selfsign.py:154 msgid "cannot obtain next serial number" -msgstr "" +msgstr "impossible d'obtenir le nouveau numéro de série" #: ipaserver/plugins/selfsign.py:189 msgid "certutil failure" -msgstr "" +msgstr "échec de certutil" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" -msgstr "" +msgstr "impossible d'ouvrir le fichier de configuration %s\n" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" -msgstr "" +msgstr "impossible d'utiliser stat() sur le fichier de configuration %s\n" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" -msgstr "" +msgstr "mémoire saturée\n" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" +msgstr "erreur en lecture\n" + +#: ipa-client/ipa-getkeytab.c:85 +#, c-format +msgid "Kerberos context initialization failed: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:96 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" -msgstr "" +msgstr "Pas d'enctypes préféré sur le système ?!\n" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" -msgstr "" +msgstr "Mémoire saturée !?\n" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" -msgstr "" +msgstr "Mémoire saturée\n" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" -msgstr "" +msgstr "Avertissement, type de chiffrement inconnu : [%s]\n" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" -msgstr "" +msgstr "Avertissement, type de sel inconnu : [%s]\n" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" -msgstr "" +msgstr "Échec de comparaison enctype !\n" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" -msgstr "" +msgstr "Échec à la création de la clé aléatoire !\n" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" -msgstr "" +msgstr "Échec à la création de la clé !\n" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" -msgstr "" +msgstr "Mémoire saturée !\n" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" -msgstr "" +msgstr "Type de sel inconnu ou mauvais (%d)!\n" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" -msgstr "" +msgstr "Aucune clé acceptée par le KDC\n" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" -msgstr "" +msgstr "Mémoire saturée\n" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" -msgstr "" +msgstr "Mémoire saturée !\n" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" -msgstr "" +msgstr "Échec à la création du contrôle !\n" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" +msgstr "Impossible d'initialiser la bibliothèque LDAP !\n" + +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" -msgstr "" +msgstr "Impossible de définir les options LDAP !\n" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" -msgstr "" +msgstr "Échec de la connexion simple\n" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" -msgstr "" +msgstr "Échec de la connexion SASL !\n" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" -msgstr "" +msgstr "Échec de l'opération %s !\n" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" -msgstr "" +msgstr "Absence de contrôle dans la réponse !\n" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" -msgstr "" +msgstr "Échec de ber_init(), contrôle invalide ?!\n" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" -msgstr "" +msgstr "Échec de ber_scanf(), contrôle invalide ?!\n" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" -msgstr "" +msgstr "Nouveau mot de passe du principal" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" -msgstr "" +msgstr "Vérfier le mot de passe du principal" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" -msgstr "" +msgstr "Affiche aussi peu que possible" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" -msgstr "" +msgstr "N'affiche que les erreurs" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" -msgstr "" +msgstr "Contacter ce serveur KDC spécifique" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" -msgstr "" +msgstr "Nom de serveur" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" +msgstr "Le principal pour lequel obtenir le (par ex: ftp/ftp.example.com@EXAMPLE.COM)" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" -msgstr "" +msgstr "Nom de principal de service Kerberos" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" -msgstr "" +msgstr "Fichier dans lequel stocker l'information de keytab" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" -msgstr "" +msgstr "Nom de fichier keytab" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" -msgstr "" +msgstr "Type de chiffrement à demander" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" -msgstr "" +msgstr "Liste séparée par des virgules des types de chiffrement" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" -msgstr "" +msgstr "Affiche la liste des types de chiffrement autorisés, et sort." -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" -msgstr "" +msgstr "Type de chiffrements autorisés" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" -msgstr "" +msgstr "Demande un mot de passe non aléatoire à utiliser pour le principal" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" -msgstr "" +msgstr "DN LDAP" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" -msgstr "" +msgstr "DN à utiliser pour la connexion en cas de non-utilisation de kerberos" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" -msgstr "" +msgstr "Mot de passe LDAP" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" -msgstr "" +msgstr "mot de passe à utiliser pour la connexion en cas de non-utilisation de kerberos" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "Échec de l'initialisation du contexte Kerberos\n" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" -msgstr "" +msgstr "Type de chiffrements supportés :\n" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" -msgstr "" +msgstr "Avertissement : échec de conversion de type (#%d)\n" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" -msgstr "" +msgstr "Mot de passe de connexion requis lors de l'utilisation d'un DN de connexion.\n" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" -msgstr "" +msgstr "Avertissement : les types de sels ne sont pas utilisés avec les mots de passe aléatoires (cf. option -P)\n" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" -msgstr "" +msgstr "Nom de principal de service invalide\n" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "" +msgstr "Cache de crédits Kerberos introuvable. Possédez-vous un ticket Kerberos ?\n" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "" +msgstr "Principal d'utilisateur Kerberos introuvable. Possédez-vous un cache de crédits Kerberos ?\n" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" -msgstr "" +msgstr "Échec à l'ouverture du keytab\n" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" -msgstr "" +msgstr "Échec de création du contenu de la clé\n" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" -msgstr "" +msgstr "Échec lors de l'ajout de la clé au keytab\n" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" -msgstr "" +msgstr "Échec à la fermeture du keytab\n" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "" +msgstr "Récupération du keytab et stockage avec succès dans : %s\n" #: ipa-client/ipa-join.c:65 #, c-format msgid "No permission to join this host to the IPA domain.\n" -msgstr "" +msgstr "Inscription de ce système au domaine IPA interdite.\n" #: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106 #, c-format msgid "No write permissions on keytab file '%s'\n" -msgstr "" +msgstr "Pas de permissions en écriture sur le fichier keytab '%s'\n" #: ipa-client/ipa-join.c:111 #, c-format msgid "access() on %s failed: errno = %d\n" -msgstr "" +msgstr "Échec de access() sur %s : errno = %d\n" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" -msgstr "" +msgstr "Mémoire saturée !" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" -msgstr "" +msgstr "Impossible d'établir la connexion au serveur LDAP : %s" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" -msgstr "" +msgstr "Impossible d'activer SSL dans LDAP\n" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" -msgstr "" +msgstr "Impossible de positionner la version LDAP\n" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" -msgstr "" +msgstr "Échec de bind : %s\n" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" -msgstr "" +msgstr "Échec de la recherche de %s sur rootdse avec une erreur %d" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" -msgstr "" - -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" +msgstr "Pas de valeurs pour %s" -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" -msgstr "" +msgid "Search for ipaCertificateSubjectBase failed with error %d" +msgstr "Échec de la recherche de ipaCertificateSubjectBase avec une erreur %d" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" -msgstr "" +msgid "Unable to determine root DN of %s\n" +msgstr "Impossible de déterminer le DN racine de %s\n" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" -msgstr "" +msgid "Incorrect password.\n" +msgstr "Mot de passe incorrect.\n" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" -msgstr "" +msgid "Unable to determine certificate subject of %s\n" +msgstr "Impossible de déterminer le sujet du certificat de %s\n" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" -msgstr "" +msgid "principal not found in XML-RPC response\n" +msgstr "principal introuvable dans la réponse XML-RPC\n" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" -msgstr "" +msgstr "Système déjà inscrit.\n" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" -msgstr "" +msgstr "Impossible de déterminer le serveur IPA depuis %s\n" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" -msgstr "" +msgstr "Le nom du système doit être pleinement qualifié : %s\n" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" -msgstr "" +msgstr "Impossible d'inscrire le système : échec à l'initialisation du contexte Kerberos\n" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" -msgstr "" +msgstr "Erreur à la résolution du keytab : %s.\n" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" -msgstr "" +msgstr "Erreur lors de l'obtention du domaine Kerberos par défaut : %s.\n" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" -msgstr "" +msgstr "Erreur lors de l'analyse de \"%s\": %s.\n" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" -msgstr "" +msgstr "Impossible d'obtenir les crédits initiaux : %s.\n" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" -msgstr "" +msgstr "Impossible de créer le cache de crédits Kerberos\n" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" -msgstr "" +msgstr "Erreur lors du stockage des crédits dans le cache : %s.\n" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" -msgstr "" +msgstr "Désinscription réussie.\n" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" -msgstr "" +msgstr "Échec de la désinscription.\n" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" -msgstr "" +msgstr "résultat de la réponse XML-RPC introuvable\n" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" -msgstr "" +msgstr "Impossible d'inscrire le système : cache de crédit Kerberos introuvable\n" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" -msgstr "" +msgstr "Impossible d'inscrire le système : Principal d'utilisateur Kerberos introuvable et mot de passe non fourni.\n" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" -msgstr "" +msgstr "echec de fork()\n" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" -msgstr "" +msgstr "ipa-getkeytab introuvable\n" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" -msgstr "" +msgstr "ipa-getkeytab a des permissions incorrectes ?\n" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" -msgstr "" +msgstr "échec de l'exécution de ipa-getkeytab, errno %d\n" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" -msgstr "" +msgstr "processus fils terminé avec %d\n" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" -msgstr "" +msgstr "Le sujet de base du certificat est : %s\n" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" -msgstr "" +msgstr "Affiche la sortie XML-RPC brute en mode GSSAPI" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." -msgstr "" +msgstr "Mode silencieux. Seules les erreurs sont affichées." -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" -msgstr "" +msgstr "Désinscrire ce système du serveur IPA" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" -msgstr "" +msgstr "Nom de système de ce serveur" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" -msgstr "" +msgstr "non de système" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" -msgstr "" +msgstr "Serveur IPA à utiliser" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." -msgstr "" +msgstr "Spécifie où stocker l'information keytab." -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" -msgstr "" +msgstr "nom de fichier" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" -msgstr "" +msgstr "Mot de passe LDAP (hors utilisation de Kerberos)" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" +msgstr "mot de passe" + +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" msgstr "" #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" -msgstr "" +msgstr "Impossible d'analyser le nom du principal\n" #: ipa-client/ipa-rmkeytab.c:45 #, c-format msgid "krb5_parse_name %d: %s\n" -msgstr "" +msgstr "krb5_parse_name %d: %s\n" #: ipa-client/ipa-rmkeytab.c:55 #, c-format msgid "Removing principal %s\n" -msgstr "" +msgstr "Suppression du principal %s\n" #: ipa-client/ipa-rmkeytab.c:68 #, c-format msgid "Failed to open keytab\n" -msgstr "" +msgstr "Impossible d'ouvrir le keytab\n" #: ipa-client/ipa-rmkeytab.c:72 #, c-format msgid "principal not found\n" -msgstr "" +msgstr "principal introuvable\n" #: ipa-client/ipa-rmkeytab.c:74 #, c-format msgid "krb5_kt_get_entry %d: %s\n" -msgstr "" +msgstr "krb5_kt_get_entry %d: %s\n" #: ipa-client/ipa-rmkeytab.c:82 #, c-format msgid "Unable to remove entry\n" -msgstr "" +msgstr "Impossible de supprimer l'entrée\n" #: ipa-client/ipa-rmkeytab.c:84 #, c-format msgid "kvno %d\n" -msgstr "" +msgstr "kvno %d\n" #: ipa-client/ipa-rmkeytab.c:85 #, c-format msgid "krb5_kt_remove_entry %d: %s\n" -msgstr "" +msgstr "krb5_kt_remove_entry %d: %s\n" #: ipa-client/ipa-rmkeytab.c:119 #, c-format msgid "Unable to parse principal\n" -msgstr "" +msgstr "Impossible d'analyser le principal\n" #: ipa-client/ipa-rmkeytab.c:121 #, c-format msgid "krb5_unparse_name %d: %s\n" -msgstr "" +msgstr "krb5_unparse_name %d: %s\n" #: ipa-client/ipa-rmkeytab.c:143 #, c-format msgid "realm not found\n" -msgstr "" +msgstr "domaine introuvable\n" #: ipa-client/ipa-rmkeytab.c:169 msgid "Print debugging information" -msgstr "" +msgstr "Affiche les informations de débogage" #: ipa-client/ipa-rmkeytab.c:169 msgid "Debugging output" -msgstr "" +msgstr "Sortie de débogage" #: ipa-client/ipa-rmkeytab.c:176 msgid "Remove all principals in this realm" -msgstr "" +msgstr "Retirer tous les principals de ce royaume" #: ipa-client/ipa-rmkeytab.c:176 msgid "Realm name" -msgstr "" +msgstr "Nom du royaume" #: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237 #, c-format msgid "Failed to open keytab '%s': %s\n" -msgstr "" +msgstr "Échec à l'ouverture du keytab '%s' : %s\n" #: ipa-client/ipa-rmkeytab.c:253 #, c-format msgid "Closing keytab failed\n" -msgstr "" +msgstr "La fermeture du keytab a échoué\n" #: ipa-client/ipa-rmkeytab.c:255 #, c-format msgid "krb5_kt_close %d: %s\n" -msgstr "" - - +msgstr "krb5_kt_close %d: %s\n" diff --git a/install/po/gu.po b/install/po/gu.po index ca55b978c..754b54412 100644 --- a/install/po/gu.po +++ b/install/po/gu.po @@ -2,12 +2,13 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:48+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Gujarati \n" "MIME-Version: 1.0\n" @@ -16,4318 +17,4130 @@ msgstr "" "Language: gu\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/he.po b/install/po/he.po index 66c254d23..5a6ddc5fb 100644 --- a/install/po/he.po +++ b/install/po/he.po @@ -2,13 +2,14 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Automatically generated, 2010. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:49+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" @@ -17,4318 +18,4130 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI
= count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7158,6 +7287,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7182,283 +7316,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7478,248 +7626,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7810,5 +7946,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/id.po b/install/po/id.po index fff1def0a..297bc1883 100644 --- a/install/po/id.po +++ b/install/po/id.po @@ -2,14 +2,15 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # -# Teguh DC , 2010. +# Translators: # jdennis , 2011. +# Teguh DC , 2010. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" @@ -18,442 +19,991 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" -msgstr "" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Masukkan %(label)s lagi untuk verifikasi:" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" -msgstr "" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Kata sandi tidak cocok!" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "" +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Dibatalkan." -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -"setidaknya diperlukan salah satu dari: type, filter, subtree, targetgroup, " -"attrs atau memberof" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" -msgstr "" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "klien %(cver)s tidak kompatibel dengan server %(sver)s di %(server)r" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" -msgstr "Grup '%s' tidak ada" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" -msgstr "" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "terjadi kesalahan internal" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" -msgstr "" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "terjadi kesalahan internal di server %(server)r" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "perintah %(name)r tidak dikenal" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" -msgstr "ACI dengan nama \"%s\" tidak ditemukan" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "kesalahan di server %(server)r: %(error)s" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" -msgstr "" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "tidak dapat terhubung ke %(uri)r: %(error)s" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Permintaan JSON-RPC tidak valid: %(error)s" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" -msgstr "" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Kesalahan kerberos: %(major)s/%(minor)s" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "Layanan %(service)r tidak ditemukan di basis data Kerberos" + +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "Tiket sudah kadaluarsa" + +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Hak akses tidak mencukupi: %(info)s" + +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "perintah %(name)r tidak membutuhkan argumen" + +#: ipalib/errors.py:664 +#, 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] "perintah %(name)r setidaknya membutuhkan %(count)d argumen" + +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "argumen dan opsi saling tumpang tindih: %(names)r" + +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "dibutuhkan %(name)r" + +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "%(name)r tidak valid: %(error)s" + +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "api tidak memiliki namespace ini: %(name)r" + +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Kata sandi tidak cocok" + +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "Perintah tidak diimplementasikan" + +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:433 +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Entri ini sudah ada" + +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "Anda harus mendaftarkan sebuah host untuk membuat layanan host" + +#: ipalib/errors.py:861 +#, python-format msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" -msgstr "" +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "Perintah ini memerlukan akses root" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "Ini sudah merupakan grup posix" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" -msgstr "" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "Sebuah grup tidak mungkin menjadi anggota grup itu sendiri" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Penguraian Base64 gagal: %(reason)s" + +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" -msgstr "ACI \"%(value)s\" telah dibuat" +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/plugins/aci.py:493 +#: ipalib/errors.py:1195 +#, python-format +msgid "" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "" + +#: ipalib/errors.py:1230 +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" + +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "tidak ada perintah maupun bantuan untuk topik %(topic)r" + +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "perubahan bertabrakan dengan perubahan lain" + +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "tidak ada modifikasi yang harus dilakukan" + +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "" + +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "query ini telah melampaui batas" + +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "" + +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "" + +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "" + +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "" + +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s" + +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "" + +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "" + +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "" + +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik" + +#: ipalib/frontend.py:821 +msgid "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." +msgstr "" + +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "" + +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "" + +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "" + +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "" + +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "" + +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "type salah" + +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "Hanya satu nilai yang diperbolehkan" + +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "harus True atau False" + +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "harus merupakan bilangan bulat" + +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "setidaknya harus %(minvalue)d" + +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d" + +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "harus merupakan angka desimal" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "nilai minimum yang diperbolehkan %(minvalue)f" + +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "nilai maksimum yang diperbolehkan %(maxvalue)f" + +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "harus cocok dengan pola \"%(pattern)s\"" + +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "harus merupakan data binari" + +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "panjang minimum yang diperbolehkan %(minlength)d byte" + +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte" + +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "harus tepat %(length)d byte" + +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "harus teks Unicode" + +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "" + +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "setidaknya minimum harus %(minlength)d karakter" + +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter" + +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "harus tepat %(length)d karakter" + +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." +msgstr "" + +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "harus salah satu dari %(values)r" + +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" +msgstr "" + +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "" + +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" +msgstr "" + +#: ipalib/plugins/aci.py:221 +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "setidaknya diperlukan salah satu dari: type, filter, subtree, targetgroup, attrs atau memberof" + +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" +msgstr "" + +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" +msgstr "" + +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" +msgstr "" + +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" +msgstr "Grup '%s' tidak ada" + +#: ipalib/plugins/aci.py:273 +msgid "empty filter" +msgstr "" + +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "" + +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "ACI dengan nama \"%s\" tidak ditemukan" + +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" +msgstr "" + +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "" + +#: ipalib/plugins/aci.py:412 +msgid "ACIs" +msgstr "" + +#: ipalib/plugins/aci.py:417 +msgid "ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" +msgstr "" + +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" +msgstr "" + +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" +msgstr "" + +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" +msgstr "" + +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" +msgstr "" + +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" +msgstr "" + +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" +msgstr "" + +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" +msgstr "" + +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" +msgstr "" + +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "" + +#: ipalib/plugins/aci.py:458 +msgid "Member of" +msgstr "" + +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" +msgstr "" + +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" +msgstr "" + +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "" + +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" +msgstr "" + +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" +msgstr "" + +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" +msgstr "" + +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" +msgstr "" + +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" +msgstr "" + +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" +msgstr "" + +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "ACI \"%(value)s\" telah dibuat" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "ACI \"%(value)s\" telah dihapus" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "ACI \"%(value)s\" telah dimodifikasi" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI sesuai" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" Execute the aci-create operation.\n" +"Auto Membership Rule.\n" "\n" -" Returns the entry as it will be created in LDAP.\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" +"a group or hostgroup based upon attribute information.\n" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" + +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "" + +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "" + +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "" + +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "" + +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "" + +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" +msgstr "" + +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "" + +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/aci.py:533 +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "" + +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Delete ACI.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "ACI \"%(value)s\" telah dihapus" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "" -#: ipalib/plugins/aci.py:543 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Execute the aci-delete operation.\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "" + +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 +msgid "" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" +" Override this so we can add completed and failed to the return result.\n" " " msgstr "" -#: ipalib/plugins/aci.py:576 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Modify ACI.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "ACI \"%(value)s\" telah dimodifikasi" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" -#: ipalib/plugins/aci.py:633 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" +" Override this so we can set completed and failed.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:434 +msgid "" "\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" +" Modify an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "%(count)d ACI sesuai" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "" -#: ipalib/plugins/aci.py:823 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Display a single ACI given an ACI name.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:466 msgid "" "\n" -" Execute the aci-show operation.\n" +" Search for automember rules.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" + +#: ipalib/plugins/automember.py:486 +msgid "" "\n" -" Returns the entry\n" +" Display information about an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:502 +msgid "" "\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +" Set default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Rename an ACI.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 +msgid "" +"\n" +" Display information about the default automember groups.\n" +" " msgstr "" -#: ipalib/plugins/automount.py:20 +#: ipalib/plugins/automount.py:29 msgid "" "\n" "Automount\n" @@ -541,673 +1091,580 @@ msgid "" " ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "" + +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/automount.py:190 +#: ipalib/plugins/automount.py:195 msgid "Automount Locations" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "" + +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 msgid "Location" msgstr "" -#: ipalib/plugins/automount.py:197 +#: ipalib/plugins/automount.py:202 msgid "Automount location name." msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/automount.py:314 +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:323 msgid "Master file" msgstr "" -#: ipalib/plugins/automount.py:315 +#: ipalib/plugins/automount.py:324 msgid "Automount master file." msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/plugins/automount.py:331 msgid "" "Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/automount.py:334 +#: ipalib/plugins/automount.py:343 +#, python-format msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/automount.py:505 +#: ipalib/plugins/automount.py:520 msgid "Map" msgstr "" -#: ipalib/plugins/automount.py:506 +#: ipalib/plugins/automount.py:521 msgid "Automount map name." msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "" + +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "" + +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 msgid "Key" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 msgid "Automount key name." msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 msgid "Mount information" msgstr "" -#: ipalib/plugins/automount.py:597 +#: ipalib/plugins/automount.py:615 msgid "description" msgstr "" -#: ipalib/plugins/automount.py:606 +#: ipalib/plugins/automount.py:624 msgid "Automount Keys" msgstr "" -#: ipalib/plugins/automount.py:607 +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" "The key,info pair must be unique. A key named %(key)s with info %(info)s " "already exists" msgstr "" -#: ipalib/plugins/automount.py:608 +#: ipalib/plugins/automount.py:627 +#, python-format msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/automount.py:609 +#: ipalib/plugins/automount.py:628 +#, python-format msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/automount.py:659 +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" "More than one entry with key %(key)s found, use --info to select specific " "entry." msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "" + +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:748 +#: ipalib/plugins/automount.py:768 msgid "Mount point" msgstr "" -#: ipalib/plugins/automount.py:752 +#: ipalib/plugins/automount.py:772 msgid "Parent map" msgstr "" -#: ipalib/plugins/automount.py:753 +#: ipalib/plugins/automount.py:773 msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:846 msgid "New mount information" msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/baseldap.py:39 +#: ipalib/plugins/baseldap.py:43 msgid "Failed members" msgstr "" -#: ipalib/plugins/baseldap.py:42 +#: ipalib/plugins/baseldap.py:46 msgid "Member users" msgstr "" -#: ipalib/plugins/baseldap.py:45 +#: ipalib/plugins/baseldap.py:49 msgid "Member groups" msgstr "" -#: ipalib/plugins/baseldap.py:48 +#: ipalib/plugins/baseldap.py:52 msgid "Member of groups" msgstr "" -#: ipalib/plugins/baseldap.py:51 +#: ipalib/plugins/baseldap.py:55 msgid "Member hosts" msgstr "" -#: ipalib/plugins/baseldap.py:54 +#: ipalib/plugins/baseldap.py:58 msgid "Member host-groups" msgstr "" -#: ipalib/plugins/baseldap.py:57 +#: ipalib/plugins/baseldap.py:61 msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/baseldap.py:66 +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 msgid "Roles" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/baseldap.py:75 +#: ipalib/plugins/baseldap.py:79 msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/baseldap.py:78 +#: ipalib/plugins/baseldap.py:82 msgid "Member netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:81 +#: ipalib/plugins/baseldap.py:85 msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:84 +#: ipalib/plugins/baseldap.py:88 msgid "Member services" msgstr "" -#: ipalib/plugins/baseldap.py:87 +#: ipalib/plugins/baseldap.py:91 msgid "Member service groups" msgstr "" -#: ipalib/plugins/baseldap.py:93 +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:100 msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/baseldap.py:102 +#: ipalib/plugins/baseldap.py:109 msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/baseldap.py:105 +#: ipalib/plugins/baseldap.py:112 msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/baseldap.py:108 +#: ipalib/plugins/baseldap.py:115 msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/baseldap.py:111 +#: ipalib/plugins/baseldap.py:118 msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/baseldap.py:114 +#: ipalib/plugins/baseldap.py:121 msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/baseldap.py:117 +#: ipalib/plugins/baseldap.py:124 msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/baseldap.py:120 +#: ipalib/plugins/baseldap.py:127 msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/baseldap.py:123 +#: ipalib/plugins/baseldap.py:130 msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/baseldap.py:126 +#: ipalib/plugins/baseldap.py:133 msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:141 +#: ipalib/plugins/baseldap.py:148 msgid "External host" msgstr "" -#: ipalib/plugins/baseldap.py:144 +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:154 msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/baseldap.py:147 +#: ipalib/plugins/baseldap.py:157 msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/baseldap.py:281 +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 msgid "Entry" msgstr "" -#: ipalib/plugins/baseldap.py:283 +#: ipalib/plugins/baseldap.py:342 +#, python-format msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/baseldap.py:284 +#: ipalib/plugins/baseldap.py:343 +#, python-format msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:285 +#: ipalib/plugins/baseldap.py:344 +#, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:286 +#: ipalib/plugins/baseldap.py:345 +#, python-format msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." -msgstr "" - -#: ipalib/plugins/baseldap.py:420 +#: ipalib/plugins/baseldap.py:632 msgid "" "Set an attribute to a name/value pair. Format is attr=value.\n" "For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:703 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/baseldap.py:727 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/baseldap.py:733 +#: ipalib/plugins/baseldap.py:965 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/baseldap.py:750 -msgid "" -"\n" -" Retrieve an LDAP entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:837 +#: ipalib/plugins/baseldap.py:1072 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:838 +#: ipalib/plugins/baseldap.py:1073 +#, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:957 +#: ipalib/plugins/baseldap.py:1165 msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1120 -msgid "" -"\n" -" Add other LDAP entries to members.\n" -" " +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:1226 -msgid "" -"\n" -" Remove LDAP entries from members.\n" -" " +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:1335 -msgid "" -"\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." +msgstr "" + +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/baseldap.py:1344 +#: ipalib/plugins/baseldap.py:1557 msgid "Time Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1345 +#: ipalib/plugins/baseldap.py:1558 msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/baseldap.py:1351 +#: ipalib/plugins/baseldap.py:1564 msgid "Size Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1352 +#: ipalib/plugins/baseldap.py:1565 msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:1552 -msgid "" -"\n" -" Base class for reverse member manipulation.\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1574 -msgid "" -"\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" -" " +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1654 +#: ipalib/plugins/baseldap.py:1881 msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:1687 -msgid "" -"\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:1767 +#: ipalib/plugins/baseldap.py:1994 msgid "removed" msgstr "" -#: ipalib/plugins/batch.py:21 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 +#: ipalib/plugins/batch.py:62 msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 +#: ipalib/plugins/cert.py:43 msgid "" "\n" "IPA certificate operations\n" @@ -1269,155 +1726,106 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " -msgstr "" - #: ipalib/plugins/cert.py:112 msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 msgid "Failure decoding Certificate Signing Request" msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:139 +#: ipalib/plugins/cert.py:144 +#, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat: %s" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 msgid "Principal" msgstr "" -#: ipalib/plugins/cert.py:217 +#: ipalib/plugins/cert.py:221 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/cert.py:224 +#: ipalib/plugins/cert.py:228 msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 msgid "Certificate" msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 msgid "Subject" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 msgid "Issuer" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 msgid "Not Before" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 msgid "Not After" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 msgid "Serial number" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:402 +#: ipalib/plugins/cert.py:404 msgid "Request id" msgstr "" -#: ipalib/plugins/cert.py:408 +#: ipalib/plugins/cert.py:410 msgid "Request status" msgstr "" -#: ipalib/plugins/cert.py:426 +#: ipalib/plugins/cert.py:428 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 msgid "Revocation reason" msgstr "" @@ -1430,189 +1838,171 @@ msgid "File to store the certificate in." msgstr "" #: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/cert.py:526 +#: ipalib/plugins/cert.py:524 msgid "Revoked" msgstr "" -#: ipalib/plugins/cert.py:534 +#: ipalib/plugins/cert.py:532 msgid "Reason" msgstr "" -#: ipalib/plugins/cert.py:535 +#: ipalib/plugins/cert.py:533 msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" +msgstr "" + +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/cert.py:570 +#: ipalib/plugins/cert.py:569 msgid "Unrevoked" msgstr "" -#: ipalib/plugins/cert.py:573 +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 msgid "Error" msgstr "" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Manage the IPA configuration\n" +"Server configuration\n" "\n" "Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" +"NOTES:\n" "\n" -"The available options are:\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -"User management options:\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" +"EXAMPLES:\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -"Server Configuration.\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" "\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/config.py:76 +#: ipalib/plugins/config.py:73 msgid "searchtimelimit must be -1 or > 1." msgstr "" #: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +msgid "configuration options" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 msgid "Configuration" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/config.py:101 +#: ipalib/plugins/config.py:100 msgid "Home directory base" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/config.py:106 +#: ipalib/plugins/config.py:105 msgid "Default shell" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/config.py:111 +#: ipalib/plugins/config.py:110 msgid "Default users group" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." -msgstr "" - -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/config.py:121 +#: ipalib/plugins/config.py:120 msgid "Search time limit" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/config.py:121 +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/config.py:127 +#: ipalib/plugins/config.py:126 msgid "Search size limit" msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/config.py:133 +#: ipalib/plugins/config.py:132 msgid "User search fields" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." -msgstr "" - -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/config.py:138 +msgid "" +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/config.py:148 +#: ipalib/plugins/config.py:147 msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/config.py:154 +#: ipalib/plugins/config.py:153 msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" #: ipalib/plugins/config.py:159 @@ -1620,40 +2010,52 @@ msgid "Default user objectclasses" msgstr "" #: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/config.py:170 +#: ipalib/plugins/config.py:171 msgid "Password plugin features" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/delegation.py:19 +#: ipalib/plugins/config.py:215 +msgid "May not be empty" +msgstr "" + +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" +msgstr "" + +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "" + +#: ipalib/plugins/delegation.py:28 msgid "" "\n" "Group to Group Delegation\n" @@ -1667,129 +2069,106 @@ msgid "" "\n" "EXAMPLES:\n" "\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" " When managing the list of attributes you need to include all attributes\n" " in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" " Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" +" ipa delegation-show \"managers edit employees' street\"\n" "\n" " Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" -msgstr "" - -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/delegation.py:70 +#: ipalib/plugins/delegation.py:71 +#, python-format msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/delegation.py:102 +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "" + +#: ipalib/plugins/delegation.py:104 msgid "Delegation" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 msgid "Delegation name" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" "Comma-separated list of permissions to grant (read, write). Default is " "write." msgstr "" -#: ipalib/plugins/delegation.py:125 +#: ipalib/plugins/delegation.py:129 msgid "Member user group" msgstr "" -#: ipalib/plugins/delegation.py:126 +#: ipalib/plugins/delegation.py:130 msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/delegation.py:156 +#: ipalib/plugins/delegation.py:158 +#, python-format msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" #: ipalib/plugins/delegation.py:181 +#, python-format msgid "Deleted delegation \"%(value)s\"" msgstr "" - -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " + +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/delegation.py:201 +#: ipalib/plugins/delegation.py:199 +#, python-format msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/delegation.py:223 +#: ipalib/plugins/delegation.py:220 +#, python-format msgid "%(count)d delegation matched" msgid_plural "%(count)d delegations matched" msgstr[0] "" -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/dns.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" "Domain Name System (DNS)\n" @@ -1802,6 +2181,14 @@ msgid "" " ipa dnszone-add example.com --name-server nameserver.example.com\n" " --admin-email admin@example.com\n" "\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" +"\n" " Add second nameserver for example.com:\n" " ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" @@ -1811,11 +2198,14 @@ msgid "" " Delete previously added nameserver from example.com:\n" " ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" +"\n" " Add new A record for www.example.com: (random IP)\n" " ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" " Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" " Add new SRV records for LDAP servers. Three quarters of the requests\n" " should go to fast.example.com, one quarter to slow.example.com. If neither\n" @@ -1841,7 +2231,7 @@ msgid "" "\n" " A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" " Delete A record '11.22.33.44'? Yes/No (default No): y\n" " Record name: www\n" " A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" @@ -1870,357 +2260,564 @@ msgid "" " ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" +msgstr "" + +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" +msgstr "" + +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" +msgstr "" + +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" +msgstr "" + +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "" + +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" #: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/dns.py:272 +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:266 msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 +msgid "" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" +msgstr "" + +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" +msgstr "" + +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" + +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "" + +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" + +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "" + +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 +msgid "" +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:439 +msgid "" +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:468 +msgid "" +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:489 +msgid "" +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" +msgstr "" + +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" +msgstr "" + +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:508 +msgid "" +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" +msgstr "" + +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" +msgstr "" + +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "" + +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" +msgstr "" + +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" +msgstr "" + +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" +msgstr "" + +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:289 +#: ipalib/plugins/dns.py:652 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:290 +#: ipalib/plugins/dns.py:653 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:296 +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" + +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" + +#: ipalib/plugins/dns.py:665 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:308 +#: ipalib/plugins/dns.py:678 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:309 +#: ipalib/plugins/dns.py:679 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:316 +#: ipalib/plugins/dns.py:686 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:317 +#: ipalib/plugins/dns.py:687 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:324 +#: ipalib/plugins/dns.py:694 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:325 +#: ipalib/plugins/dns.py:695 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:332 +#: ipalib/plugins/dns.py:702 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:333 +#: ipalib/plugins/dns.py:703 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:340 +#: ipalib/plugins/dns.py:710 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:341 +#: ipalib/plugins/dns.py:711 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:349 +#: ipalib/plugins/dns.py:719 msgid "SOA time to live" msgstr "" -#: ipalib/plugins/dns.py:350 +#: ipalib/plugins/dns.py:720 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:354 +#: ipalib/plugins/dns.py:724 msgid "SOA class" msgstr "" -#: ipalib/plugins/dns.py:355 +#: ipalib/plugins/dns.py:725 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:365 +#: ipalib/plugins/dns.py:735 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:366 +#: ipalib/plugins/dns.py:736 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:372 +#: ipalib/plugins/dns.py:742 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:373 +#: ipalib/plugins/dns.py:743 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:388 +#: ipalib/plugins/dns.py:759 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:391 +#: ipalib/plugins/dns.py:762 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:397 +#: ipalib/plugins/dns.py:775 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:735 +#: ipalib/plugins/dns.py:972 +#, 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:740 +#: ipalib/plugins/dns.py:977 +#, python-format msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "" + +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:792 +#: ipalib/plugins/dns.py:1250 +#, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:802 +#: ipalib/plugins/dns.py:1259 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:807 +#: ipalib/plugins/dns.py:1264 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:834 +#: ipalib/plugins/dns.py:1291 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:835 +#: ipalib/plugins/dns.py:1292 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:845 +#: ipalib/plugins/dns.py:1302 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:875 +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "" + +#: ipalib/plugins/dns.py:1331 +#, python-format msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:936 +#: ipalib/plugins/dns.py:1389 +#, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:940 +#: ipalib/plugins/dns.py:1393 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:962 +#: ipalib/plugins/dns.py:1415 +#, python-format msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" "Entitlements\n" @@ -2257,183 +2854,128 @@ msgid "" "Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/entitle.py:189 +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" +msgstr "" + +#: ipalib/plugins/entitle.py:190 msgid "Entitlements" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" +msgstr "" + +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 msgid "UUID" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 msgid "Product" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 msgid "Quantity" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 msgid "Consumed" msgstr "" #: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/entitle.py:282 +#: ipalib/plugins/entitle.py:280 +#, python-format msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:394 +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:397 +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:479 +#: ipalib/plugins/entitle.py:472 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:483 +#: ipalib/plugins/entitle.py:476 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" -msgstr "" - -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:495 +#: ipalib/plugins/entitle.py:488 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:666 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/group.py:26 msgid "" "\n" "Groups of users\n" "\n" "Manage groups of users. By default, new groups are POSIX groups. You\n" "can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" "converted to non-POSIX groups.\n" "\n" "Every group must have a description.\n" @@ -2476,145 +3018,122 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "" + +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/group.py:100 +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 msgid "User Groups" msgstr "" -#: ipalib/plugins/group.py:108 +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" + +#: ipalib/plugins/group.py:109 msgid "Group name" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 msgid "GID" msgstr "" -#: ipalib/plugins/group.py:120 +#: ipalib/plugins/group.py:121 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:132 +#: ipalib/plugins/group.py:131 +#, python-format msgid "Added group \"%(value)s\"" msgstr "Grup \"%(value)s\" telah ditambahkan" -#: ipalib/plugins/group.py:137 +#: ipalib/plugins/group.py:136 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:155 +#, python-format msgid "Deleted group \"%(value)s\"" msgstr "Grup \"%(value)s\" telah dihapus" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:189 +#: ipalib/plugins/group.py:185 +#, python-format msgid "Modified group \"%(value)s\"" msgstr "Grup \"%(value)s\" telah dimodifikasi" -#: ipalib/plugins/group.py:194 +#: ipalib/plugins/group.py:190 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:227 +#, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "%(count)d grup sesuai" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 +#: ipalib/plugins/group.py:233 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" #: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:285 +#: ipalib/plugins/group.py:284 +#, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 +#: ipalib/plugins/group.py:305 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:312 +#: ipalib/plugins/group.py:311 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:331 +#: ipalib/plugins/group.py:330 msgid "Not a managed group" msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" "Host-based access control\n" @@ -2636,7 +3155,7 @@ msgid "" "\n" " Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" " anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -2644,7 +3163,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -2653,7 +3172,7 @@ msgid "" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" " ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -2664,262 +3183,210 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "" + +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/hbacrule.py:126 +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:132 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 msgid "Rule name" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 +#: ipalib/plugins/hbacrule.py:143 msgid "Rule type" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 msgid "User category" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 msgid "Host category" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:155 +#: ipalib/plugins/hbacrule.py:165 msgid "Source host category" msgstr "" -#: ipalib/plugins/hbacrule.py:156 +#: ipalib/plugins/hbacrule.py:166 msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:161 +#: ipalib/plugins/hbacrule.py:171 msgid "Service category" msgstr "" -#: ipalib/plugins/hbacrule.py:162 +#: ipalib/plugins/hbacrule.py:172 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 msgid "Enabled" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 msgid "Users" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "" - -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 msgid "Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 msgid "Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 msgid "Services" msgstr "" -#: ipalib/plugins/hbacrule.py:206 +#: ipalib/plugins/hbacrule.py:216 msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:227 +#, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:234 +#: ipalib/plugins/hbacrule.py:240 +#, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:248 +#, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:273 +#, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:290 +#: ipalib/plugins/hbacrule.py:288 +#, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:319 +#: ipalib/plugins/hbacrule.py:315 +#, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 msgid "Access time" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacsvc.py:19 +#: ipalib/plugins/hbacsvc.py:27 msgid "" "\n" "HBAC Services\n" @@ -2944,82 +3411,76 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" #: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +msgid "HBAC Services" msgstr "" #: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +msgid "HBAC Service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:80 msgid "HBAC service description" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:85 +#: ipalib/plugins/hbacsvc.py:90 +#, python-format msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:94 +#: ipalib/plugins/hbacsvc.py:98 +#, python-format msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:104 +#: ipalib/plugins/hbacsvc.py:106 +#, python-format msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/hbacsvc.py:114 +#: ipalib/plugins/hbacsvc.py:115 +#, python-format msgid "%(count)d HBAC service matched" msgid_plural "%(count)d HBAC services matched" msgstr[0] "" #: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/hbacsvcgroup.py:24 msgid "" "\n" "HBAC Service Groups\n" @@ -3046,92 +3507,243 @@ msgid "" " ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 +#: ipalib/plugins/hbacsvcgroup.py:71 msgid "Service group name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 +#: ipalib/plugins/hbacsvcgroup.py:78 msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbactest.py:27 msgid "" "\n" -" Add a new HBAC service group.\n" -" " +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" - -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/host.py:42 msgid "" "\n" "Hosts/Machines\n" @@ -3187,217 +3799,201 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" - #: ipalib/plugins/host.py:101 msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/host.py:129 +#: ipalib/plugins/host.py:142 +#, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "" + +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/host.py:231 +#: ipalib/plugins/host.py:257 msgid "Host name" msgstr "" -#: ipalib/plugins/host.py:238 +#: ipalib/plugins/host.py:264 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:242 +#: ipalib/plugins/host.py:268 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:243 +#: ipalib/plugins/host.py:269 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/host.py:248 +#: ipalib/plugins/host.py:274 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/host.py:252 +#: ipalib/plugins/host.py:278 msgid "Platform" msgstr "" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:279 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/host.py:257 +#: ipalib/plugins/host.py:283 msgid "Operating system" msgstr "" -#: ipalib/plugins/host.py:258 +#: ipalib/plugins/host.py:284 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/host.py:262 +#: ipalib/plugins/host.py:288 msgid "User password" msgstr "" -#: ipalib/plugins/host.py:263 +#: ipalib/plugins/host.py:289 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:266 +#: ipalib/plugins/host.py:292 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:271 +#: ipalib/plugins/host.py:297 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:369 +#, python-format msgid "Added host \"%(value)s\"" msgstr "Host \"%(value)s\" telah ditambahkan" -#: ipalib/plugins/host.py:316 +#: ipalib/plugins/host.py:374 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:319 +#: ipalib/plugins/host.py:377 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:322 +#: ipalib/plugins/host.py:380 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" + +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/host.py:413 +#: ipalib/plugins/host.py:481 +#, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:426 +#: ipalib/plugins/host.py:501 +#, python-format msgid "Deleted host \"%(value)s\"" msgstr "Host \"%(value)s\" telah dihapus" -#: ipalib/plugins/host.py:431 +#: ipalib/plugins/host.py:506 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:542 +#: ipalib/plugins/host.py:615 +#, python-format msgid "Modified host \"%(value)s\"" msgstr "Host \"%(value)s\" telah dimodifikasi" -#: ipalib/plugins/host.py:549 +#: ipalib/plugins/host.py:622 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/host.py:623 +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." +msgstr "" + +#: ipalib/plugins/host.py:712 +#, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "%(count)d host sesuai" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:688 +#: ipalib/plugins/host.py:789 +#, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/hostgroup.py:25 msgid "" "\n" "Groups of hosts.\n" @@ -3429,1016 +4025,1154 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/hostgroup.py:78 +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" +msgstr "" + +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" +msgstr "" + +#: ipalib/plugins/hostgroup.py:80 msgid "Host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:79 +#: ipalib/plugins/hostgroup.py:81 msgid "Name of host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:86 +#: ipalib/plugins/hostgroup.py:88 msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:98 +#: ipalib/plugins/hostgroup.py:116 +#, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "hostgroup \"%(value)s\" telah ditambahkan" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" + +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." +msgstr "" + +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "hostgroup \"%(value)s\" telah dihapus" + +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." +msgstr "" + +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "hostgroup \"%(value)s\" telah dimodifikasi" + +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." +msgstr "" + +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "%(count)d hostgroup sesuai" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." +msgstr "" + +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." +msgstr "" + +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." +msgstr "" + +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" +msgstr "" + +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" +msgstr "" + +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI
follow these directions to " +"configure your browser." +msgstr "" + +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." +msgstr "" + +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" +msgstr "" + +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" +msgstr "" + +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" +msgstr "" + +#: ipalib/plugins/internal.py:164 +msgid "No entries." +msgstr "" + +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." +msgstr "" + +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" +msgstr "" + +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:176 +msgid "Show Results" +msgstr "" + +#: ipalib/plugins/internal.py:179 +msgid "Add" +msgstr "" + +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" +msgstr "" + +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" +msgstr "" + +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" +msgstr "" + +#: ipalib/plugins/internal.py:183 +msgid "Add Many" +msgstr "" + +#: ipalib/plugins/internal.py:184 +msgid "Cancel" +msgstr "" + +#: ipalib/plugins/internal.py:185 +msgid "Close" +msgstr "" + +#: ipalib/plugins/internal.py:186 +msgid "Find" +msgstr "" + +#: ipalib/plugins/internal.py:187 +msgid "Get" +msgstr "" + +#: ipalib/plugins/internal.py:188 +msgid "Issue" +msgstr "" + +#: ipalib/plugins/internal.py:189 +msgid "OK" +msgstr "" + +#: ipalib/plugins/internal.py:190 +msgid "Delete" +msgstr "" + +#: ipalib/plugins/internal.py:191 +msgid "Reset" +msgstr "" + +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "hostgroup \"%(value)s\" telah dihapus" +#: ipalib/plugins/internal.py:193 +msgid "Retry" +msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "hostgroup \"%(value)s\" telah dimodifikasi" +#: ipalib/plugins/internal.py:195 +msgid "Update" +msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "%(count)d hostgroup sesuai" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" +msgstr "" -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/internal.py:285 +msgid "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/internal.py:287 +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/internal.py:344 +msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/internal.py:346 +msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/internal.py:410 +msgid "Target" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/internal.py:438 +msgid "Groups" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/internal.py:445 +msgid "Allow" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/internal.py:446 +msgid "Any Command" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/internal.py:447 +msgid "Any Group" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/internal.py:451 +msgid "Deny" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/internal.py:452 +msgid "External" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/internal.py:453 +msgid "Access this host" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/internal.py:457 +msgid "As Whom" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/internal.py:494 +msgid "" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/internal.py:383 +#: ipalib/plugins/internal.py:499 msgid "Automount" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" "Kerberos ticket policy\n" @@ -4478,63 +5212,47 @@ msgid "" " ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" -msgstr "" - -#: ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/krbtpolicy.py:86 msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 +#: ipalib/plugins/krbtpolicy.py:91 msgid "Max life" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 +#: ipalib/plugins/krbtpolicy.py:92 msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 +#: ipalib/plugins/krbtpolicy.py:97 msgid "Max renew" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 +#: ipalib/plugins/krbtpolicy.py:98 msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" #: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/migration.py:19 +#: ipalib/plugins/migration.py:34 msgid "" "\n" "Migration to IPA\n" @@ -4575,2553 +5293,1957 @@ msgid "" " Specify the user and group container. This can be used to migrate user and\n" " group data from an IPA v1 server:\n" " ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" msgstr "" -#: ipalib/plugins/migration.py:78 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/migration.py:79 +#: ipalib/plugins/migration.py:87 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " -msgstr "" - -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." -msgstr "" - -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " -msgstr "" - -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "" - -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" -msgstr "" - -#: ipalib/plugins/migration.py:272 -msgid "bind password" -msgstr "" - -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" -msgstr "" - -#: ipalib/plugins/migration.py:285 -msgid "User container" -msgstr "" - -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" -msgstr "" - -#: ipalib/plugins/migration.py:292 -msgid "Group container" -msgstr "" - -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" -msgstr "" - -#: ipalib/plugins/migration.py:299 -msgid "User object class" -msgstr "" - -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/migration.py:307 +#: ipalib/plugins/migration.py:255 msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" #: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." -msgstr "" - -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +msgid "Bind DN" msgstr "" #: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" -msgstr "" - -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." -msgstr "" - -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." -msgstr "" - -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " -msgstr "" - -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " -msgstr "" - -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " -msgstr "" - -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" -msgstr "" - -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" -msgstr "" - -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" -msgstr "" - -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d variabel" - -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." -msgstr "" - -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" -msgstr "" - -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" -msgstr "" - -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" -msgstr "" - -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "%(count)d pengaya telah dimuat" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" -msgstr "" - -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" -msgstr "" - -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" -msgstr "" - -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" -msgstr "" - -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" -msgstr "" - -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" -msgstr "" - -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" -msgstr "" - -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" -msgstr "" - -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +msgid "User container" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/netgroup.py:180 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Search for a netgroup.\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "" -#: ipalib/plugins/netgroup.py:213 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Display information about a netgroup.\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/netgroup.py:258 +#: ipalib/plugins/migration.py:373 msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -" Set a user's password\n" -" " +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/migration.py:389 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/permission.py:19 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Permission object.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/permission.py:119 +#: ipalib/plugins/migration.py:411 msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/permission.py:132 +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" + +#: ipalib/plugins/migration.py:418 msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/permission.py:177 +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Add a new permission.\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/permission.py:236 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Delete a permission.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/permission.py:256 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Modify a permission.\n" -" " -msgstr "" - -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d variabel" -#: ipalib/plugins/permission.py:405 +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Display information about a permission.\n" -" " +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " -msgstr "" +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "%(count)d pengaya telah dimuat" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Kerberos pkinit options\n" +"Netgroups\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -"For more information on anonymous pkinit see:\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" -msgstr "" - -#: ipalib/plugins/pkinit.py:46 -msgid "" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" PKINIT Options\n" -" " +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "" + +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:177 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove permissions from a privilege.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" +"Permissions\n" "\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"A permission may not contain other permissions.\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:72 -msgid "" +"EXAMPLES:\n" "\n" -" Class of Service object used for linking policies with groups\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:172 -msgid "" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" "\n" -" Password Policy object\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" -msgstr "" +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:361 -msgid "" +"Kerberos pkinit options\n" "\n" -" Delete a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:380 -msgid "" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" -" Modify a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "prioritas tidak dapat ditetapkan pada kebijakan global" - -#: ipalib/plugins/pwpolicy.py:423 -msgid "" +"EXAMPLES:\n" "\n" -" Display information about password policy.\n" -" " +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" +"\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" +"\n" +"For more information on anonymous pkinit see:\n" +"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" - -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" +"Privileges\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +"A privilege may not contain other privileges.\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "" + +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Self-service Permissions\n" +"Password policy\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "" - -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" msgstr "" - -#: ipalib/plugins/service.py:21 -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" -"\n" + +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "prioritas tidak dapat ditetapkan pada kebijakan global" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo Commands\n" +"Roles\n" "\n" -"Commands used as building blocks for sudo\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" +"\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." +msgstr "" + +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" msgstr[0] "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." +msgstr "" + +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." +msgstr "" + +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." +msgstr "" + +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "" + +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" +msgstr "" + +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." +msgstr "" + +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -"Groups of Sudo commands\n" +"Self-service Permissions\n" "\n" -"Manage groups of Sudo commands.\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"EXAMPLES:\n" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +"EXAMPLES:\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." +msgstr "" + +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." +msgstr "" + +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." +msgstr "" + +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 +#: ipalib/plugins/service.py:35 msgid "" "\n" -" Search for sudo command groups.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" - -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Display sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Sudo Rule management\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" -msgstr "" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -" Create new Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/sudorule.py:189 -msgid "" +"Sudo Commands\n" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:197 -msgid "" +"Commands used as building blocks for sudo\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"EXAMPLES:\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" Enable a Sudo rule.\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +"Groups of Sudo Commands\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Manage groups of Sudo Commands.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" "\n" -" User object.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "" - -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "" - -#: ipalib/plugins/user.py:127 -msgid "Last name" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" -msgstr "" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudorule.py:25 +msgid "" +"\n" +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "Pengguna \"%(value)s\" telah ditambahkan" - -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "Pengguna \"%(value)s\" telah dihapus" - -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "Pengguna \"%(value)s\" telah dimodifikasi" - -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "%(count)d pengguna sesuai" - -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:218 +#, python-format +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/cli.py:581 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Masukkan %(label)s lagi untuk verifikasi:" - -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "Kata sandi tidak cocok!" - -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "Dibatalkan." - -#: ipalib/cli.py:819 -msgid "Command name" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" -msgstr "klien %(cver)s tidak kompatibel dengan server %(sver)s di %(server)r" - -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s" - -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "terjadi kesalahan internal" - -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "terjadi kesalahan internal di server %(server)r" - -#: ipalib/errors.py:372 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "unknown command %(name)r" -msgstr "perintah %(name)r tidak dikenal" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" -msgstr "kesalahan di server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "" -#: ipalib/errors.py:405 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "tidak dapat terhubung ke %(uri)r: %(error)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Permintaan JSON-RPC tidak valid: %(error)s" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Kesalahan kerberos: %(major)s/%(minor)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Service %(service)r not found in Kerberos database" -msgstr "Layanan %(service)r tidak ditemukan di basis data Kerberos" - -#: ipalib/errors.py:514 -msgid "No credentials cache found" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "Tiket sudah kadaluarsa" - -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Hak akses tidak mencukupi: %(info)s" - -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "perintah %(name)r tidak membutuhkan argumen" - -#: ipalib/errors.py:661 -#, 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] "perintah %(name)r setidaknya membutuhkan %(count)d argumen" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" -msgstr "argumen dan opsi saling tumpang tindih: %(names)r" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "dibutuhkan %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "%(name)r tidak valid: %(error)s" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" -msgstr "api tidak memiliki namespace ini: %(name)r" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "Kata sandi tidak cocok" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "Perintah tidak diimplementasikan" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "Entri ini sudah ada" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" -msgstr "Anda harus mendaftarkan sebuah host untuk membuat layanan host" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." +msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "Perintah ini memerlukan akses root" - -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "Ini sudah merupakan grup posix" - -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "Sebuah grup tidak mungkin menjadi anggota grup itu sendiri" +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Penguraian Base64 gagal: %(reason)s" +#: ipalib/plugins/user.py:196 +msgid "Display name" +msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" -msgstr "tidak ada perintah maupun bantuan untuk topik %(topic)r" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" +msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "perubahan bertabrakan dengan perubahan lain" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" +msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" -msgstr "tidak ada modifikasi yang harus dilakukan" +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" -msgstr "query ini telah melampaui batas" +#: ipalib/plugins/user.py:265 +msgid "State/Province" +msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" +msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" +msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" +msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Pengguna \"%(value)s\" telah ditambahkan" + +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Pengguna \"%(value)s\" telah dihapus" + +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "type salah" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Pengguna \"%(value)s\" telah dimodifikasi" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "Hanya satu nilai yang diperbolehkan" +#: ipalib/plugins/user.py:510 +msgid "Search for users." +msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "harus True atau False" +#: ipalib/plugins/user.py:517 +msgid "Self" +msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "harus merupakan bilangan bulat" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" +msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "setidaknya harus %(minvalue)d" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d pengguna sesuai" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "harus merupakan angka desimal" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" -msgstr "nilai minimum yang diperbolehkan %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" -msgstr "nilai maksimum yang diperbolehkan %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." +msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "harus cocok dengan pola \"%(pattern)s\"" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "harus merupakan data binari" +msgid "Enabled user account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "panjang minimum yang diperbolehkan %(minlength)d byte" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." +msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte" +msgid "Unlocked account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" -msgstr "harus tepat %(length)d byte" +msgid "Permission denied: %(file)s" +msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "harus teks Unicode" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "setidaknya minimum harus %(minlength)d karakter" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter" +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "harus tepat %(length)d karakter" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" -msgstr "harus salah satu dari %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "Tidak dapat berkomunikasi dengan CMS (%s)" @@ -7142,6 +7264,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7166,283 +7293,297 @@ msgstr "tidak dapat memperoleh nomor seri berikutnya" msgid "certutil failure" msgstr "kegagalah certutil" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7462,248 +7603,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7794,5 +7923,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/it.po b/install/po/it.po index a336d0ab0..6a141c01c 100644 --- a/install/po/it.po +++ b/install/po/it.po @@ -2,12 +2,13 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:49+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" @@ -16,4318 +17,4130 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/ja.po b/install/po/ja.po index 146a9fbd0..a494aa862 100644 --- a/install/po/ja.po +++ b/install/po/ja.po @@ -2,13 +2,15 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: +# , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:50+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" +"Last-Translator: carrotsoft \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -16,7108 +18,7231 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" -msgstr "" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "パスワードが違います。" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "" +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "キャンセルされました。" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "内部エラーが発生しました" + +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "サーバー %(server)r で内部エラーが発生しました" + +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "不明なコマンド %(name)r" + +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "%(uri)rへ接続できません:%(error)s" + +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:664 +#, 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] "" + +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "パスワードが違います" + +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "コマンドが実装されていません" + +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64形式のデコードに失敗: %(reason)s" + +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/plugins/aci.py:633 +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "" -#: ipalib/plugins/aci.py:823 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:837 -msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:865 -msgid "" -"\n" -" Rename an ACI.\n" -" " +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/frontend.py:821 +msgid "" +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:803 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Modify an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" +"\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:80 +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -" IPA configuration object\n" -" " +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" -msgstr "" - -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:439 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Modify DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:452 -msgid "" +"IPA certificate operations\n" "\n" -" Search for DNS zones (SOA records).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:460 -msgid "" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" +"\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:215 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:286 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:479 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:724 +msgid "SOA class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1259 +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/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" - -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" -msgstr "" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI
follow these directions to " -"configure your browser." +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/kerberos.py:79 +#: ipalib/plugins/internal.py:147 msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:19 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 -msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/internal.py:344 +msgid "Any Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/internal.py:346 +msgid "Accessing" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/role.py:20 -msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/role.py:191 -msgid "" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" +msgstr "" + +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" + +#: ipalib/plugins/internal.py:494 +msgid "" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "" + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" + +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "" + +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" + +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "" + +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "" + +#: ipalib/plugins/internal.py:513 +msgid "undo" +msgstr "" + +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" + +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" +msgstr "" + +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "" + +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:25 +msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "" + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." +msgstr "" + +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "" + +#: ipalib/plugins/migration.py:255 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "" + +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "" + +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "" + +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "" + +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "" + +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" +msgstr "" + +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" +msgstr "" + +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" +msgstr "" + +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" + +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" +msgstr "" + +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" + +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "" + +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" + +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" + +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" + +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "" + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "" + +#: ipalib/plugins/migration.py:448 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "" + +#: ipalib/plugins/misc.py:25 +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" + +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "" + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Netgroups\n" "\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:181 +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Search for a self-service permission.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" + +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Services\n" +"Permissions\n" "\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A permission may not contain other permissions.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"A permission is made up of a number of different parts:\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" +"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\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" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "" + +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "" + +#: ipalib/plugins/permission.py:94 +msgid "permission" +msgstr "" + +#: ipalib/plugins/permission.py:95 +msgid "permissions" +msgstr "" + +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "" + +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "" + +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "" + +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "" + +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "" + +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." +msgstr "" + +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 +msgid "" +"\n" +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." +msgstr "" + +#: ipalib/plugins/pkinit.py:25 +msgid "" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"Kerberos pkinit options\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +"EXAMPLES:\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" "\n" -" entry_attrs is a dict of an entry\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" returns nothing\n" -" " +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" +"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" +"\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Roles\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Privileges are assigned to Roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -" Sudo Rule management\n" -" " +"Roles can not contain other roles.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" +"\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" User object.\n" -" " msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:295 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" Add a new user.\n" -" " +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" msgstr[0] "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:507 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Enable a user account.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:641 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "command %(name)r takes no arguments" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:661 +#: ipalib/plugins/sudorule.py:226 #, 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] "" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "overlapping arguments and options: %(names)r" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:707 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "%(name)r is required" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "invalid %(name)r: %(error)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "api has no such namespace: %(name)r" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:922 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:488 #, python-format -msgid "must be at least %(minvalue)d" +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1097 -#, python-format -msgid "must be at least %(minvalue)f" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1107 +#: ipalib/plugins/user.py:539 #, python-format -msgid "can be at most %(maxvalue)f" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" + +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" + +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must match pattern \"%(pattern)s\"" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1192 -msgid "must be binary data" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must be at least %(minlength)d bytes" +msgid "Enabled user account \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7138,6 +7263,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7162,283 +7292,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7458,248 +7602,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7790,5 +7922,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/kn.po b/install/po/kn.po index 343345454..335f97404 100644 --- a/install/po/kn.po +++ b/install/po/kn.po @@ -2,162 +2,512 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # gundachandru , 2010. # jdennis , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" -"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/team/kn/)\n" +"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/language/kn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kn\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು %(label)s ಎಂಟರ್ ಮಾಡಿ:" + +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ!" + +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ." + +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:772 +msgid "Built-in commands:" +msgstr "" + +#: ipalib/cli.py:774 +msgid "Help subtopics:" +msgstr "" + +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "" + +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "" + +#: ipalib/cli.py:816 +msgid "Topic commands:" +msgstr "" + +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "" + +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:172 +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "%(server)r ನಲ್ಲಿ ಕ್ಲೈಂಟ್ %(cver)s ಸರ್ವರ್‌ %(sver)s ನೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ" + +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "%(server)s ಸರ್ವರ್‌ನಿಂದ ಅಜ್ಞಾತ ದೋಷ %(code)d: %(error)s" + +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ" + +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "%(server)r ನಲ್ಲಿ ಸರ್ವರ್‌ನಲ್ಲಿ ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ" + +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "ಅಜ್ಞಾತ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) %(name)r " + +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "%(server)r ಸರ್ವರ್‌ನಲ್ಲಿ ದೋಷ: %(error)s" + +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "%(uri)r ಗೆ ಸಂಪರ್ಕಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s" + +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "ಅಸಿಂಧುವಾದ JSON-RPC ಬೇಡಿಕೆ: %(error)s" + +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "" + +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Kerberos ದೋಷ: %(major)s/%(minor)s" + +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "Kerberos ಯೋಗ್ಯತಾಪತ್ರಗಳನ್ನು ಪಡೆದಿಲ್ಲ" + +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "Kerberos ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ %(service)r ಸೇವೆ(ಸರ್ವಿಸ್) ಸಿಗುತ್ತಿಲ್ಲ" + +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಯೋಗ್ಯತಾಪತ್ರಗಳು ಸಿಗುತ್ತಿಲ್ಲ" + +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "ಟಿಕೆಟ್‌ನ ಅವಧಿ ಮುಗಿದಿದೆ" + +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನ ಅನುಮತಿಗಳು ಸರಿಯಿಲ್ಲ" + +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಜೋಡಣೆ ಸರಿಯಿಲ್ಲ" + +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "ಕೋರಿದ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕಾಗಿ KDC ಯನ್ನು ಬಗೆಹರಿಸಲು ಆಗುತ್ತಿಲ್ಲ" + +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಸಾಲದಾಗಿದೆ: %(info)s" + +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಯಾವುದೇ ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ" + +#: ipalib/errors.py:664 +#, 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] "" + +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ಮತ್ತು ಆಯ್ಕೆಗಳನ್ನು ಒಂದರಮೇಲೊಂದಾಗಿಸಲಾಗುತ್ತಿದೆ: %(names)r" + +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "%(name)r ಅಗತ್ಯವಿದೆ" + +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "ಅಸಿಂಧುವಾದ %(name)r: %(error)s" + +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "apiನಲ್ಲಿ ಆ ತರಹದ ಯಾವುದೇ ನೇಮ್‌ಸ್ಪೇಸ್ ಇಲ್ಲ: %(name)r" + +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ" + +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್)ಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಿಲ್ಲ" + +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "" + +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ" + +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "ಒಂದು ಹೋಸ್ಟ್ ಸೇವೆ(ಸರ್ವಿಸ್)ಯನ್ನು ರಚಿಸುವ ಸಲುವಾಗಿ ನೀವು ಒಂದು ಹೋಸ್ಟ್ ಅನ್ನು ಸೇರಿಸಲೇಬೇಕಾಗಿದೆ" + +#: ipalib/errors.py:861 +#, python-format msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "Service principalನ ಸ್ವರೂಪ ಹೀಗಿಲ್ಲ: service/fully-qualified host name: %(reason)s" + +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "principalನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ವು ಈ IPA ಸರ್ವರ್‌ನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕೆ ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ" + +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "ಈ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ರೂಟ್(root) ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಕೋರುತ್ತದೆ" + +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "ಇದು ಈಗಾಗಲೇ posix ಗುಂಪು" + +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "Principalನ ಸ್ವರೂಪ user@REALM ನಂತಲ್ಲ: %(principal)r" + +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "" + +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "" + +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "" + +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "" + +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯ ಆಗದಿರಬಹುದು" + +#: ipalib/errors.py:1021 +msgid "This entry is already a member" +msgstr "" + +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64 ಡೆಕೋಡಿಂಗ್ ವಿಫಲಗೊಂಡಿದೆ: %(reason)s" + +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯನಂತೆ ಸೇರಿಸಲು ಆಗದಿರಬಹುದು" + +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪನ್ನು ತೆಗೆದುಹಾಕಲು ಆಗುವುದಿಲ್ಲ" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/plugins/aci.py:181 +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" msgstr "" -#: ipalib/plugins/aci.py:193 +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "" + +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" + +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಇಲ್ಲ ಸಹಾಯದ ಟಾಪಿಕ್ %(topic)r ಕೂಡ ಇಲ್ಲ" + +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "ಬದಲಾವಣೆ ಮತ್ತೊಂದು ಬದಲಾವಣೆಯೊಂದಿಗೆ ಡಿಕ್ಕಿಹೊಡೆದಿದೆ" + +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "ಯಾವುದೇ ಬದಲಾವಣೆಗಳು ನಡೆಯಬಾರದು" + +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "" + +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "ಈ ಕ್ವೇರಿಗೆ ಮಿತಿಗಳು ಮೀರಿವೆ" + +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "" + +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "" + +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "" + +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "" + +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s" + +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "" + +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "" + +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/aci.py:204 +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "ಫಲಿತಾಂಶಗಳು ಕತ್ತರಿಸಲ್ಪಟ್ಟಿವೆ, ಹೆಚ್ಚ್ಹು ನಿರ್ದಿಷ್ಟವಾದ ಶೋಧನೆ ಪ್ರಯತ್ನಿಸಿ" + +#: ipalib/frontend.py:821 msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +"Retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." +msgstr "" + +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "" + +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "" + +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "" + +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "" + +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "" + +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "ಸರಿಯಲ್ಲದ ಬಗೆ" + +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ" + +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "ನಿಜ (True) ಅಥವಾ ಸುಳ್ಳು (False) ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "ಇನ್ಟೀಜರ್ ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)d ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)d ಆಗಿರಬಹುದು" + +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "ದಶಾಂಶ ಸಂಖ್ಯೆ ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)f ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)f ಆಗಿರಬಹುದು" + +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕು" + +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಬೈಟ್ಸ್ ಆಗಿರಬಹುದು" + +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "ಯುನಿಕೋಡ್ ಪಠ್ಯ ಆಗಿರಲೇಬೇಕು" + +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "" + +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" + +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು" + +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" + +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." +msgstr "" + +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "%(values)r ನಲ್ಲಿ ಒಂದು ಆಗಿರಲೇಬೇಕು" + +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" #: ipalib/plugins/aci.py:215 @@ -172,9 +522,7 @@ msgstr "" msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" -msgstr "" -"ಕನಿಷ್ಟ ಒಂದು : ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ, ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್, attrs ಅಥವಾ memberof " -"ಗಳ ಅಗತ್ಯವಿದೆ" +msgstr "ಕನಿಷ್ಟ ಒಂದು : ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ, ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್, attrs ಅಥವಾ memberof ಗಳ ಅಗತ್ಯವಿದೆ" #: ipalib/plugins/aci.py:224 msgid "filter and memberof are mutually exclusive" @@ -189,6 +537,7 @@ msgid "One of group, permission or self is required" msgstr "" #: ipalib/plugins/aci.py:251 +#, python-format msgid "Group '%s' does not exist" msgstr " '%s' ಗುಂಪು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" @@ -197,20 +546,12 @@ msgid "empty filter" msgstr "" #: ipalib/plugins/aci.py:294 +#, python-format msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:379 +#, python-format msgid "ACI with name \"%s\" not found" msgstr "\"%s\" ಹೆಸರು ಹೊಂದಿರುವ ACI ಪತ್ತೆಯಾಗಿಲ್ಲ" @@ -224,13 +565,6 @@ msgid "" "none)" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:412 msgid "ACIs" msgstr "ACIs" @@ -239,221 +573,437 @@ msgstr "ACIs" msgid "ACI name" msgstr "ACI ಹೆಸರು" -#: ipalib/plugins/aci.py:422 +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 msgid "Permission" msgstr "" -#: ipalib/plugins/aci.py:423 +#: ipalib/plugins/aci.py:424 msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 msgid "User group" msgstr "ಬಳಕೆದಾರ ಗುಂಪು" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 msgid "User group ACI grants access to" msgstr "User group ACI grants access to" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 msgid "Permissions" msgstr "ಅನುಮತಿಗಳು" -#: ipalib/plugins/aci.py:433 +#: ipalib/plugins/aci.py:436 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 msgid "Attributes" msgstr "ವೈಶಿಷ್ಟ್ಯಗಳು" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 msgid "Comma-separated list of attributes" msgstr "Comma-separated ವೈಶಿಷ್ಟ್ಯಗಳ ಪಟ್ಟಿ" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 msgid "Type" msgstr "ಬಗೆ" -#: ipalib/plugins/aci.py:445 +#: ipalib/plugins/aci.py:452 msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/aci.py:450 +#: ipalib/plugins/aci.py:458 msgid "Member of" msgstr "ಸದಸ್ಯ" -#: ipalib/plugins/aci.py:451 +#: ipalib/plugins/aci.py:459 msgid "Member of a group" msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 msgid "Filter" msgstr "ಶೋಧಕ (ಫಿಲ್ಟರ್)" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "Legal LDAP filter (e.g. ou=Engineering)" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 msgid "Subtree" msgstr "ಉಪವೃಕ್ಷ" -#: ipalib/plugins/aci.py:461 +#: ipalib/plugins/aci.py:471 msgid "Subtree to apply ACI to" msgstr "Subtree to apply ACI to" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 msgid "Target group" msgstr "Target ಗುಂಪು" -#: ipalib/plugins/aci.py:466 +#: ipalib/plugins/aci.py:477 msgid "Group to apply ACI to" msgstr "Group to apply ACI to" -#: ipalib/plugins/aci.py:470 +#: ipalib/plugins/aci.py:482 msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:471 +#: ipalib/plugins/aci.py:483 msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "\"%(value)s\" ACIವನ್ನು ರಚಿಸಲಾಗಿದೆ" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "\"%(value)s\" ACIವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:28 +msgid "" +"\n" +"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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" + +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "" + +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "" + +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "" + +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "" + +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "" + +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" +msgstr "" + +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "ವಿವರಣೆ" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "" + +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "" + +#: ipalib/plugins/automember.py:228 +msgid "" +"\n" +" Add an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "" + +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Create new ACI.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" -msgstr "\"%(value)s\" ACIವನ್ನು ರಚಿಸಲಾಗಿದೆ" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/aci.py:493 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" +" Override this so we can add completed and failed to the return result.\n" " " msgstr "" -#: ipalib/plugins/aci.py:533 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Delete ACI.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" -#: ipalib/plugins/aci.py:543 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" +" Override this so we can set completed and failed.\n" " " msgstr "" -#: ipalib/plugins/aci.py:576 +#: ipalib/plugins/automember.py:434 msgid "" "\n" -" Modify ACI.\n" +" Modify an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "\"%(value)s\" ACIವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" - -#: ipalib/plugins/aci.py:633 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" +" Delete an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:466 +msgid "" "\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" +" Search for automember rules.\n" " " msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" msgstr[0] "" -#: ipalib/plugins/aci.py:823 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Display a single ACI given an ACI name.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +" Set default group for all unmatched entries.\n" +" " msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Rename an ACI.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 +msgid "" +"\n" +" Display information about the default automember groups.\n" +" " msgstr "" -#: ipalib/plugins/automount.py:20 +#: ipalib/plugins/automount.py:29 msgid "" "\n" "Automount\n" @@ -541,673 +1091,580 @@ msgid "" " ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "" + +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/automount.py:190 +#: ipalib/plugins/automount.py:195 msgid "Automount Locations" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "" + +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 msgid "Location" msgstr "ಸ್ಥಳ" -#: ipalib/plugins/automount.py:197 +#: ipalib/plugins/automount.py:202 msgid "Automount location name." msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/automount.py:314 +#: ipalib/plugins/automount.py:323 msgid "Master file" msgstr "" -#: ipalib/plugins/automount.py:315 +#: ipalib/plugins/automount.py:324 msgid "Automount master file." msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/plugins/automount.py:331 msgid "" "Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/automount.py:334 +#: ipalib/plugins/automount.py:343 +#, python-format msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/automount.py:505 +#: ipalib/plugins/automount.py:520 msgid "Map" msgstr "ನಕ್ಷೆ" -#: ipalib/plugins/automount.py:506 +#: ipalib/plugins/automount.py:521 msgid "Automount map name." msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "ವಿವರಣೆ" - -#: ipalib/plugins/automount.py:515 +#: ipalib/plugins/automount.py:530 msgid "Automount Maps" msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "" + +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "" + +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "" + +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 msgid "Key" msgstr "ಕೀ" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 msgid "Automount key name." msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 msgid "Mount information" msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ" -#: ipalib/plugins/automount.py:597 +#: ipalib/plugins/automount.py:615 msgid "description" msgstr "ವಿವರಣೆ" -#: ipalib/plugins/automount.py:606 +#: ipalib/plugins/automount.py:624 msgid "Automount Keys" msgstr "ಕೀಗಳ ಆಟೋಮೌಂಟ್" -#: ipalib/plugins/automount.py:607 +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" "The key,info pair must be unique. A key named %(key)s with info %(info)s " "already exists" msgstr "" -#: ipalib/plugins/automount.py:608 +#: ipalib/plugins/automount.py:627 +#, python-format msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/automount.py:609 +#: ipalib/plugins/automount.py:628 +#, python-format msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/automount.py:659 +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" "More than one entry with key %(key)s found, use --info to select specific " "entry." msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/automount.py:748 +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:768 msgid "Mount point" msgstr "ಮೌಂಟ್ ಪಾಯಂಟ್" -#: ipalib/plugins/automount.py:752 +#: ipalib/plugins/automount.py:772 msgid "Parent map" msgstr "Parent map" -#: ipalib/plugins/automount.py:753 +#: ipalib/plugins/automount.py:773 msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/baseldap.py:39 +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "ಗುಪ್ತಪದ" + +#: ipalib/plugins/baseldap.py:43 msgid "Failed members" msgstr "ವಿಫಲಗೊಂಡ ಸದಸ್ಯರು" -#: ipalib/plugins/baseldap.py:42 +#: ipalib/plugins/baseldap.py:46 msgid "Member users" msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು" -#: ipalib/plugins/baseldap.py:45 +#: ipalib/plugins/baseldap.py:49 msgid "Member groups" msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು" -#: ipalib/plugins/baseldap.py:48 +#: ipalib/plugins/baseldap.py:52 msgid "Member of groups" msgstr "" -#: ipalib/plugins/baseldap.py:51 +#: ipalib/plugins/baseldap.py:55 msgid "Member hosts" msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್‌ಗಳು" -#: ipalib/plugins/baseldap.py:54 +#: ipalib/plugins/baseldap.py:58 msgid "Member host-groups" msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ಗಳು" -#: ipalib/plugins/baseldap.py:57 +#: ipalib/plugins/baseldap.py:61 msgid "Member of host-groups" msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಸದಸ್ಯ" -#: ipalib/plugins/baseldap.py:66 +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 msgid "Roles" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/baseldap.py:75 +#: ipalib/plugins/baseldap.py:79 msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/baseldap.py:78 +#: ipalib/plugins/baseldap.py:82 msgid "Member netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:81 +#: ipalib/plugins/baseldap.py:85 msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:84 +#: ipalib/plugins/baseldap.py:88 msgid "Member services" msgstr "" -#: ipalib/plugins/baseldap.py:87 +#: ipalib/plugins/baseldap.py:91 msgid "Member service groups" msgstr "" -#: ipalib/plugins/baseldap.py:93 +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:100 msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/baseldap.py:102 +#: ipalib/plugins/baseldap.py:109 msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/baseldap.py:105 +#: ipalib/plugins/baseldap.py:112 msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/baseldap.py:108 +#: ipalib/plugins/baseldap.py:115 msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/baseldap.py:111 +#: ipalib/plugins/baseldap.py:118 msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/baseldap.py:114 +#: ipalib/plugins/baseldap.py:121 msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/baseldap.py:117 +#: ipalib/plugins/baseldap.py:124 msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/baseldap.py:120 +#: ipalib/plugins/baseldap.py:127 msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/baseldap.py:123 +#: ipalib/plugins/baseldap.py:130 msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/baseldap.py:126 +#: ipalib/plugins/baseldap.py:133 msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:141 +#: ipalib/plugins/baseldap.py:148 msgid "External host" msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್" -#: ipalib/plugins/baseldap.py:144 +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:154 msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/baseldap.py:147 +#: ipalib/plugins/baseldap.py:157 msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/baseldap.py:281 +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 msgid "Entry" msgstr "" -#: ipalib/plugins/baseldap.py:283 +#: ipalib/plugins/baseldap.py:342 +#, python-format msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/baseldap.py:284 +#: ipalib/plugins/baseldap.py:343 +#, python-format msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:285 +#: ipalib/plugins/baseldap.py:344 +#, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:286 +#: ipalib/plugins/baseldap.py:345 +#, python-format msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." -msgstr "" - -#: ipalib/plugins/baseldap.py:420 +#: ipalib/plugins/baseldap.py:632 msgid "" "Set an attribute to a name/value pair. Format is attr=value.\n" "For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:703 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/baseldap.py:727 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/baseldap.py:733 +#: ipalib/plugins/baseldap.py:965 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/baseldap.py:750 -msgid "" -"\n" -" Retrieve an LDAP entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:837 +#: ipalib/plugins/baseldap.py:1072 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:838 +#: ipalib/plugins/baseldap.py:1073 +#, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:957 +#: ipalib/plugins/baseldap.py:1165 msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1120 -msgid "" -"\n" -" Add other LDAP entries to members.\n" -" " +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:1226 -msgid "" -"\n" -" Remove LDAP entries from members.\n" -" " +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:1335 -msgid "" -"\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." +msgstr "" + +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/baseldap.py:1344 +#: ipalib/plugins/baseldap.py:1557 msgid "Time Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1345 +#: ipalib/plugins/baseldap.py:1558 msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/baseldap.py:1351 +#: ipalib/plugins/baseldap.py:1564 msgid "Size Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1352 +#: ipalib/plugins/baseldap.py:1565 msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:1552 -msgid "" -"\n" -" Base class for reverse member manipulation.\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1574 -msgid "" -"\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" -" " +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1654 +#: ipalib/plugins/baseldap.py:1881 msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:1687 -msgid "" -"\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:1767 +#: ipalib/plugins/baseldap.py:1994 msgid "removed" msgstr "" -#: ipalib/plugins/batch.py:21 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 +#: ipalib/plugins/batch.py:62 msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 +#: ipalib/plugins/cert.py:43 msgid "" "\n" "IPA certificate operations\n" @@ -1269,156 +1726,106 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " -msgstr "" - #: ipalib/plugins/cert.py:112 msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 msgid "Failure decoding Certificate Signing Request" msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:139 +#: ipalib/plugins/cert.py:144 +#, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ: %s" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 msgid "Principal" msgstr "Principal" -#: ipalib/plugins/cert.py:217 +#: ipalib/plugins/cert.py:221 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "ಈ ಪ್ರಮಾಣಪತ್ರಕ್ಕಾಗಿ Service principal (e.g. HTTP/test.example.com)" -#: ipalib/plugins/cert.py:224 +#: ipalib/plugins/cert.py:228 msgid "automatically add the principal if it doesn't exist" msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ principal ಸೇರಿಸಿ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲದಿದ್ದಲ್ಲಿ" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 msgid "Certificate" msgstr "ಪ್ರಮಾಣಪತ್ರ" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 msgid "Subject" msgstr "ವಿಷಯ" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 msgid "Issuer" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 msgid "Not Before" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 msgid "Not After" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 msgid "Serial number" msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:402 +#: ipalib/plugins/cert.py:404 msgid "Request id" msgstr "ಬೇಡಿಕೆ ID" -#: ipalib/plugins/cert.py:408 +#: ipalib/plugins/cert.py:410 msgid "Request status" msgstr "ಬೇಡಿಕೆ ಸ್ಥಿತಿ" -#: ipalib/plugins/cert.py:426 +#: ipalib/plugins/cert.py:428 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "" -"ಕ್ರಮ ಸಂಖ್ಯೆ ಡೆಸಿಮಲ್‌ನಲ್ಲಿ ಅಥವಾ 0x ಮೊದಲು ಸೇರಿಸಿದ್ದಲ್ಲಿ ಹೆಕ್ಸಾಡೆಸಿಮಲ್‌ನಲ್ಲಿ" +msgstr "ಕ್ರಮ ಸಂಖ್ಯೆ ಡೆಸಿಮಲ್‌ನಲ್ಲಿ ಅಥವಾ 0x ಮೊದಲು ಸೇರಿಸಿದ್ದಲ್ಲಿ ಹೆಕ್ಸಾಡೆಸಿಮಲ್‌ನಲ್ಲಿ" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 msgid "Revocation reason" msgstr "ರದ್ದು ಮಾಡುವುದಕ್ಕೆ ಕಾರಣ" @@ -1431,189 +1838,171 @@ msgid "File to store the certificate in." msgstr "" #: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/cert.py:526 +#: ipalib/plugins/cert.py:524 msgid "Revoked" msgstr "ರದ್ದು ಮಾಡಲಾಗಿದೆ" -#: ipalib/plugins/cert.py:534 +#: ipalib/plugins/cert.py:532 msgid "Reason" msgstr "ಕಾರಣ" -#: ipalib/plugins/cert.py:535 +#: ipalib/plugins/cert.py:533 msgid "Reason for revoking the certificate (0-10)" msgstr "ಪ್ರಮಾಣಪತ್ರವನ್ನು (0-10) ರದ್ದು ಮಾಡಲು ಕಾರಣ" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" +msgstr "" + +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/cert.py:570 +#: ipalib/plugins/cert.py:569 msgid "Unrevoked" msgstr "ರದ್ದು ಮಾಡಲಾಗಿಲ್ಲ" -#: ipalib/plugins/cert.py:573 +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 msgid "Error" msgstr "ದೋಷ" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Manage the IPA configuration\n" +"Server configuration\n" "\n" "Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" +"NOTES:\n" "\n" -"The available options are:\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -"User management options:\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" +"EXAMPLES:\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -"Server Configuration.\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" "\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/config.py:76 +#: ipalib/plugins/config.py:73 msgid "searchtimelimit must be -1 or > 1." msgstr "" #: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +msgid "configuration options" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 msgid "Configuration" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/config.py:101 +#: ipalib/plugins/config.py:100 msgid "Home directory base" msgstr "ಹೋಮ್ ಡೈರೆಕ್ಟರೀ ಮೂಲ" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/config.py:106 +#: ipalib/plugins/config.py:105 msgid "Default shell" msgstr "ಡೀಫಾಲ್ಟ್ ಶೆಲ್" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/config.py:111 +#: ipalib/plugins/config.py:110 msgid "Default users group" msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." -msgstr "" - -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/config.py:121 +#: ipalib/plugins/config.py:120 msgid "Search time limit" msgstr "ಹುಡುಕು ಸಮಯ ಮಿತಿ" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/config.py:121 +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/config.py:127 +#: ipalib/plugins/config.py:126 msgid "Search size limit" msgstr "ಹುಡುಕು ಗಾತ್ರ ಮಿತಿ" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/config.py:133 +#: ipalib/plugins/config.py:132 msgid "User search fields" msgstr "ಬಳಕೆದಾರನ ಶೋಧ ಫೀಲ್ಡ್‌ಗಳು" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/config.py:138 +msgid "" +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "ಮೈಗ್ರೇಶನ್ ಕ್ರಮ" - -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/config.py:148 +#: ipalib/plugins/config.py:147 msgid "Certificate Subject base" msgstr "ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯ ಮೂಲ" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/config.py:154 +#: ipalib/plugins/config.py:153 msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" #: ipalib/plugins/config.py:159 @@ -1621,40 +2010,52 @@ msgid "Default user objectclasses" msgstr "" #: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/config.py:170 +#: ipalib/plugins/config.py:171 msgid "Password plugin features" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "" + +#: ipalib/plugins/config.py:215 +msgid "May not be empty" +msgstr "" + +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/delegation.py:19 +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "" + +#: ipalib/plugins/delegation.py:28 msgid "" "\n" "Group to Group Delegation\n" @@ -1668,129 +2069,106 @@ msgid "" "\n" "EXAMPLES:\n" "\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" " When managing the list of attributes you need to include all attributes\n" " in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" " Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" +" ipa delegation-show \"managers edit employees' street\"\n" "\n" " Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" -msgstr "" - -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/delegation.py:70 +#: ipalib/plugins/delegation.py:71 +#, python-format msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/delegation.py:102 +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "" + +#: ipalib/plugins/delegation.py:104 msgid "Delegation" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 msgid "Delegation name" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" "Comma-separated list of permissions to grant (read, write). Default is " "write." msgstr "" -#: ipalib/plugins/delegation.py:125 +#: ipalib/plugins/delegation.py:129 msgid "Member user group" msgstr "" -#: ipalib/plugins/delegation.py:126 +#: ipalib/plugins/delegation.py:130 msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/delegation.py:156 +#: ipalib/plugins/delegation.py:158 +#, python-format msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" #: ipalib/plugins/delegation.py:181 +#, python-format msgid "Deleted delegation \"%(value)s\"" msgstr "" #: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/delegation.py:201 +#: ipalib/plugins/delegation.py:199 +#, python-format msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/delegation.py:223 +#: ipalib/plugins/delegation.py:220 +#, python-format msgid "%(count)d delegation matched" msgid_plural "%(count)d delegations matched" msgstr[0] "" -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/dns.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" "Domain Name System (DNS)\n" @@ -1803,6 +2181,14 @@ msgid "" " ipa dnszone-add example.com --name-server nameserver.example.com\n" " --admin-email admin@example.com\n" "\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" +"\n" " Add second nameserver for example.com:\n" " ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" @@ -1812,11 +2198,14 @@ msgid "" " Delete previously added nameserver from example.com:\n" " ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" +"\n" " Add new A record for www.example.com: (random IP)\n" " ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" " Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" " Add new SRV records for LDAP servers. Three quarters of the requests\n" " should go to fast.example.com, one quarter to slow.example.com. If neither\n" @@ -1842,7 +2231,7 @@ msgid "" "\n" " A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" " Delete A record '11.22.33.44'? Yes/No (default No): y\n" " Record name: www\n" " A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" @@ -1871,357 +2260,564 @@ msgid "" " ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" +msgstr "" + +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" +msgstr "" + +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" +msgstr "" + +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" +msgstr "" + +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "" + +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" +msgstr "" + +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" +msgstr "" + +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/dns.py:367 +msgid "" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" +msgstr "" + +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" + +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "" + +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" + +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "" + +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" msgstr "" -#: ipalib/plugins/dns.py:272 +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:439 +msgid "" +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" +msgstr "" + +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:468 +msgid "" +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " +msgstr "" + +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:489 +msgid "" +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" +msgstr "" + +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" +msgstr "" + +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" +msgstr "" + +#: ipalib/plugins/dns.py:508 +msgid "" +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" +msgstr "" + +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" +msgstr "" + +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "" + +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" +msgstr "" -#: ipalib/plugins/dns.py:289 +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" +msgstr "" + +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" +msgstr "" + +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" +msgstr "" + +#: ipalib/plugins/dns.py:652 msgid "Zone name" msgstr "ವಲಯದ ಹೆಸರು" -#: ipalib/plugins/dns.py:290 +#: ipalib/plugins/dns.py:653 msgid "Zone name (FQDN)" msgstr "ವಲಯದ ಹೆಸರು (FQDN)" -#: ipalib/plugins/dns.py:296 +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" + +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" + +#: ipalib/plugins/dns.py:665 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:308 +#: ipalib/plugins/dns.py:678 msgid "SOA serial" msgstr "SOA serial" -#: ipalib/plugins/dns.py:309 +#: ipalib/plugins/dns.py:679 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:316 +#: ipalib/plugins/dns.py:686 msgid "SOA refresh" msgstr "SOA refresh" -#: ipalib/plugins/dns.py:317 +#: ipalib/plugins/dns.py:687 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:324 +#: ipalib/plugins/dns.py:694 msgid "SOA retry" msgstr "SOA retry" -#: ipalib/plugins/dns.py:325 +#: ipalib/plugins/dns.py:695 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:332 +#: ipalib/plugins/dns.py:702 msgid "SOA expire" msgstr "SOA expire" -#: ipalib/plugins/dns.py:333 +#: ipalib/plugins/dns.py:703 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:340 +#: ipalib/plugins/dns.py:710 msgid "SOA minimum" msgstr "SOA minimum" -#: ipalib/plugins/dns.py:341 +#: ipalib/plugins/dns.py:711 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:349 +#: ipalib/plugins/dns.py:719 msgid "SOA time to live" msgstr "SOA time to live" -#: ipalib/plugins/dns.py:350 +#: ipalib/plugins/dns.py:720 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:354 +#: ipalib/plugins/dns.py:724 msgid "SOA class" msgstr "SOA class" -#: ipalib/plugins/dns.py:355 +#: ipalib/plugins/dns.py:725 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 msgid "BIND update policy" msgstr "BIND update policy" -#: ipalib/plugins/dns.py:365 +#: ipalib/plugins/dns.py:735 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:366 +#: ipalib/plugins/dns.py:736 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:372 +#: ipalib/plugins/dns.py:742 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:373 +#: ipalib/plugins/dns.py:743 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:388 +#: ipalib/plugins/dns.py:759 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:391 +#: ipalib/plugins/dns.py:762 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:397 +#: ipalib/plugins/dns.py:775 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" -msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ" - -#: ipalib/plugins/dns.py:538 -msgid "Class" -msgstr "ವರ್ಗ" - -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ" + +#: ipalib/plugins/dns.py:944 +msgid "Class" +msgstr "ವರ್ಗ" + +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:735 +#: ipalib/plugins/dns.py:972 +#, 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:740 +#: ipalib/plugins/dns.py:977 +#, python-format msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "" + +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:792 +#: ipalib/plugins/dns.py:1250 +#, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:802 +#: ipalib/plugins/dns.py:1259 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:807 +#: ipalib/plugins/dns.py:1264 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:834 +#: ipalib/plugins/dns.py:1291 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:835 +#: ipalib/plugins/dns.py:1292 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:845 +#: ipalib/plugins/dns.py:1302 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:875 +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "" + +#: ipalib/plugins/dns.py:1331 +#, python-format msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:936 +#: ipalib/plugins/dns.py:1389 +#, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:940 +#: ipalib/plugins/dns.py:1393 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:962 +#: ipalib/plugins/dns.py:1415 +#, python-format msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" "Entitlements\n" @@ -2258,183 +2854,128 @@ msgid "" "Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 msgid "UUID" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 msgid "Product" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 msgid "Quantity" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 msgid "Consumed" msgstr "" #: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/entitle.py:282 +#: ipalib/plugins/entitle.py:280 +#, python-format msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:394 +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:397 +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:479 +#: ipalib/plugins/entitle.py:472 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:483 +#: ipalib/plugins/entitle.py:476 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" -msgstr "ಗುಪ್ತಪದ" - -#: ipalib/plugins/entitle.py:495 +#: ipalib/plugins/entitle.py:488 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:666 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/group.py:26 msgid "" "\n" "Groups of users\n" "\n" "Manage groups of users. By default, new groups are POSIX groups. You\n" "can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" "converted to non-POSIX groups.\n" "\n" "Every group must have a description.\n" @@ -2477,145 +3018,122 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "" + +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/group.py:100 +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 msgid "User Groups" msgstr "ಬಳಕೆದಾರರ ಗುಂಪುಗಳು" -#: ipalib/plugins/group.py:108 +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" + +#: ipalib/plugins/group.py:109 msgid "Group name" msgstr "ಗುಂಪಿನ ಹೆಸರು" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "ಗುಂಪಿನ ವಿವರಣೆ" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 msgid "GID" msgstr "GID" -#: ipalib/plugins/group.py:120 +#: ipalib/plugins/group.py:121 msgid "GID (use this option to set it manually)" msgstr "GID (ಇದನ್ನು ಮ್ಯಾನ್ಯೂವಲ್ ಆಗಿ ಸೆಟ್ ಮಾಡಲು ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ)" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:132 +#: ipalib/plugins/group.py:131 +#, python-format msgid "Added group \"%(value)s\"" msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ" -#: ipalib/plugins/group.py:137 +#: ipalib/plugins/group.py:136 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:155 +#, python-format msgid "Deleted group \"%(value)s\"" msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:189 +#: ipalib/plugins/group.py:185 +#, python-format msgid "Modified group \"%(value)s\"" msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" -#: ipalib/plugins/group.py:194 +#: ipalib/plugins/group.py:190 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:222 +msgid "Search for groups." +msgstr "" + +#: ipalib/plugins/group.py:227 +#, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 +#: ipalib/plugins/group.py:233 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" #: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:285 +#: ipalib/plugins/group.py:284 +#, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 +#: ipalib/plugins/group.py:305 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:312 +#: ipalib/plugins/group.py:311 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:331 +#: ipalib/plugins/group.py:330 msgid "Not a managed group" msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" "Host-based access control\n" @@ -2637,7 +3155,7 @@ msgid "" "\n" " Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" " anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -2645,7 +3163,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -2654,7 +3172,7 @@ msgid "" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" " ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -2665,262 +3183,210 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "" + +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "" + +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/hbacrule.py:126 +#: ipalib/plugins/hbacrule.py:132 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 msgid "Rule name" msgstr "ನಿಯಮದ ಹೆಸರು" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "ನಿಯಮದ ಬಗೆ(ಅನುಮತಿಸು ಅಥವಾ ನಿರಾಕರಿಸು)" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "" -#: ipalib/plugins/hbacrule.py:137 +#: ipalib/plugins/hbacrule.py:143 msgid "Rule type" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 msgid "User category" msgstr "ಬಳಕೆದಾರನ ವರ್ಗ" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 msgid "User category the rule applies to" msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 msgid "Host category" msgstr "ಹೋಸ್ಟ್ ವರ್ಗ" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 msgid "Host category the rule applies to" msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಹೋಸ್ಟ್ ವರ್ಗ" -#: ipalib/plugins/hbacrule.py:155 +#: ipalib/plugins/hbacrule.py:165 msgid "Source host category" msgstr "ಮೂಲ ಹೋಸ್ಟ್ ವರ್ಗ" -#: ipalib/plugins/hbacrule.py:156 +#: ipalib/plugins/hbacrule.py:166 msgid "Source host category the rule applies to" msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಮೂಲ ಹೋಸ್ಟ್ ವರ್ಗ" -#: ipalib/plugins/hbacrule.py:161 +#: ipalib/plugins/hbacrule.py:171 msgid "Service category" msgstr "" -#: ipalib/plugins/hbacrule.py:162 +#: ipalib/plugins/hbacrule.py:172 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 msgid "Enabled" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 msgid "Users" msgstr "ಬಳಕೆದಾರರು" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "ಗುಂಪುಗಳು" - -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 msgid "Hosts" msgstr "ಹೋಸ್ಟ್‌ಗಳು" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 msgid "Host Groups" msgstr "ಹೋಸ್ಟ್ ಗುಂಪುಗಳು" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 msgid "Services" msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)" -#: ipalib/plugins/hbacrule.py:206 +#: ipalib/plugins/hbacrule.py:216 msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:227 +#, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:234 +#: ipalib/plugins/hbacrule.py:240 +#, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:248 +#, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:273 +#, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:290 +#: ipalib/plugins/hbacrule.py:288 +#, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:319 +#: ipalib/plugins/hbacrule.py:315 +#, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 msgid "Access time" msgstr "ಪ್ರವೇಶದ ಸಮಯ" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacsvc.py:19 +#: ipalib/plugins/hbacsvc.py:27 msgid "" "\n" "HBAC Services\n" @@ -2945,82 +3411,76 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" #: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "ಸೇವೆಯ ಹೆಸರು" +msgid "HBAC Services" +msgstr "" #: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "ಸೇವೆಯ ಹೆಸರು" + +#: ipalib/plugins/hbacsvc.py:80 msgid "HBAC service description" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:85 +#: ipalib/plugins/hbacsvc.py:90 +#, python-format msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:94 +#: ipalib/plugins/hbacsvc.py:98 +#, python-format msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:104 +#: ipalib/plugins/hbacsvc.py:106 +#, python-format msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/hbacsvc.py:114 +#: ipalib/plugins/hbacsvc.py:115 +#, python-format msgid "%(count)d HBAC service matched" msgid_plural "%(count)d HBAC services matched" msgstr[0] "" #: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/hbacsvcgroup.py:24 msgid "" "\n" "HBAC Service Groups\n" @@ -3047,92 +3507,243 @@ msgid "" " ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 +#: ipalib/plugins/hbacsvcgroup.py:71 msgid "Service group name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 +#: ipalib/plugins/hbacsvcgroup.py:78 msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" #: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" #: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format msgid "%(count)d HBAC service group matched" msgid_plural "%(count)d HBAC service groups matched" msgstr[0] "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 +#: ipalib/plugins/hbactest.py:27 msgid "" "\n" -" Remove members from an HBAC service group.\n" -" " +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "ಬಳಕೆದಾರನ ಹೆಸರು" + +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "" + +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "" + +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" +msgstr "" + +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "" + +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" + +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" +msgstr "" + +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" +msgstr "" + +#: ipalib/plugins/host.py:42 msgid "" "\n" "Hosts/Machines\n" @@ -3188,217 +3799,201 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" - #: ipalib/plugins/host.py:101 msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/host.py:129 +#: ipalib/plugins/host.py:142 +#, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "" + +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/host.py:231 +#: ipalib/plugins/host.py:257 msgid "Host name" msgstr "ಹೋಸ್ಟ್ ಹೆಸರು" -#: ipalib/plugins/host.py:238 +#: ipalib/plugins/host.py:264 msgid "A description of this host" msgstr "ಈ ಹೋಸ್ಟ್‌ನ ವಿವರಣೆ" -#: ipalib/plugins/host.py:242 +#: ipalib/plugins/host.py:268 msgid "Locality" msgstr "ಪ್ರದೇಶ" -#: ipalib/plugins/host.py:243 +#: ipalib/plugins/host.py:269 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Baltimore, MD\")" -#: ipalib/plugins/host.py:248 +#: ipalib/plugins/host.py:274 msgid "Host location (e.g. \"Lab 2\")" msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Lab 2\")" -#: ipalib/plugins/host.py:252 +#: ipalib/plugins/host.py:278 msgid "Platform" msgstr "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:279 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "ಹೋಸ್ಟ್ ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲ್ಯಾಟ್‌ಫಾರ್ಮ್ (e.g. \"Lenovo T61\")" -#: ipalib/plugins/host.py:257 +#: ipalib/plugins/host.py:283 msgid "Operating system" msgstr "ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ" -#: ipalib/plugins/host.py:258 +#: ipalib/plugins/host.py:284 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "ಹೋಸ್ಟ್ ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಆವೃತ್ತಿ (e.g. \"Fedora 9\")" -#: ipalib/plugins/host.py:262 +#: ipalib/plugins/host.py:288 msgid "User password" msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ" -#: ipalib/plugins/host.py:263 +#: ipalib/plugins/host.py:289 msgid "Password used in bulk enrollment" msgstr "ದೊಡ್ಡ ಪ್ರಮಾಣದ ದಾಖಲಾತಿಯಲ್ಲಿ ಬಳಸಲಾದ ಗುಪ್ತಪದ" -#: ipalib/plugins/host.py:266 +#: ipalib/plugins/host.py:292 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:271 +#: ipalib/plugins/host.py:297 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 msgid "Base-64 encoded server certificate" msgstr "Base-64 ಎನ್‌ಕೋಡೆಡ್ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರ" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 msgid "Principal name" msgstr "Principal ಹೆಸರು" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:369 +#, python-format msgid "Added host \"%(value)s\"" msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಸೇರಿಸಲಾಗಿದೆ" -#: ipalib/plugins/host.py:316 +#: ipalib/plugins/host.py:374 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:319 +#: ipalib/plugins/host.py:377 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:322 +#: ipalib/plugins/host.py:380 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" + +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/host.py:413 +#: ipalib/plugins/host.py:481 +#, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:426 +#: ipalib/plugins/host.py:501 +#, python-format msgid "Deleted host \"%(value)s\"" msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ" -#: ipalib/plugins/host.py:431 +#: ipalib/plugins/host.py:506 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:542 +#: ipalib/plugins/host.py:615 +#, python-format msgid "Modified host \"%(value)s\"" msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" -#: ipalib/plugins/host.py:549 +#: ipalib/plugins/host.py:622 msgid "Kerberos principal name for this host" msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." +msgstr "" + +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/host.py:623 +#: ipalib/plugins/host.py:712 +#, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:688 +#: ipalib/plugins/host.py:789 +#, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/hostgroup.py:25 msgid "" "\n" "Groups of hosts.\n" @@ -3430,3708 +4025,3225 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" +msgstr "" + +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/hostgroup.py:78 +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" +msgstr "" + +#: ipalib/plugins/hostgroup.py:80 msgid "Host-group" msgstr "ಹೋಸ್ಟ್-ಗುಂಪು" -#: ipalib/plugins/hostgroup.py:79 +#: ipalib/plugins/hostgroup.py:81 msgid "Name of host-group" msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಹೆಸರು" -#: ipalib/plugins/hostgroup.py:86 +#: ipalib/plugins/hostgroup.py:88 msgid "A description of this host-group" msgstr "ಈ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:98 +#: ipalib/plugins/hostgroup.py:116 +#, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ" -#: ipalib/plugins/hostgroup.py:104 +#: ipalib/plugins/hostgroup.py:131 +#, python-format msgid "" -"\n" -" Delete a hostgroup.\n" -" " +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" + +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:108 +#: ipalib/plugins/hostgroup.py:155 +#, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:118 +#: ipalib/plugins/hostgroup.py:163 +#, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/hostgroup.py:128 +#: ipalib/plugins/hostgroup.py:177 +#, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:44 +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:47 +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "" - -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "" - -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "" - -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "" - -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "" - -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "" - -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "ದತ್ತಾಂಶ" - -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/internal.py:285 +msgid "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:287 -msgid "Access this host" +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "" + +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" #: ipalib/plugins/internal.py:290 -msgid "Run Commands" +msgid "SHA1 Fingerprint" msgstr "" #: ipalib/plugins/internal.py:291 -msgid "Any Command" +msgid "Superseded" msgstr "" #: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +msgid "Unspecified" msgstr "" #: ipalib/plugins/internal.py:293 -msgid "As Whom" +msgid "Valid Certificate Present" msgstr "" #: ipalib/plugins/internal.py:294 -msgid "Any Group" +msgid "Validity" msgstr "" #: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "" - -#: ipalib/plugins/internal.py:297 -msgid "External" +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "" +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "ದತ್ತಾಂಶ" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" #: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +msgid "Standard Record Types" msgstr "" #: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +msgid "Records for DNS Zone" msgstr "" #: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "" - -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "" - -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +msgid "Record Type" msgstr "" #: ipalib/plugins/internal.py:314 -msgid "Password change complete" +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" #: ipalib/plugins/internal.py:319 -msgid "Add" +msgid "Certificates" msgstr "" #: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +msgid "Consume" msgstr "" #: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "" - -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +msgid "Consume Entitlement" msgstr "" #: ipalib/plugins/internal.py:323 -msgid "Add Many" +msgid "Download" msgstr "" #: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "" - -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +msgid "Download Certificate" msgstr "" #: ipalib/plugins/internal.py:326 -msgid "Close" +msgid "Import" msgstr "" #: ipalib/plugins/internal.py:327 -msgid "Enroll" +msgid "Import Certificate" msgstr "" #: ipalib/plugins/internal.py:328 -msgid "Find" +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" #: ipalib/plugins/internal.py:329 -msgid "Get" +msgid "Loading..." msgstr "" #: ipalib/plugins/internal.py:330 -msgid "Issue" -msgstr "" - -#: ipalib/plugins/internal.py:331 -msgid "OK" +msgid "No Certificate." msgstr "" #: ipalib/plugins/internal.py:332 -msgid "Reset" +msgid "Register" msgstr "" #: ipalib/plugins/internal.py:333 -msgid "Delete" -msgstr "" - -#: ipalib/plugins/internal.py:334 -msgid "Restore" -msgstr "" - -#: ipalib/plugins/internal.py:335 -msgid "Retry" -msgstr "" - -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" #: ipalib/plugins/internal.py:338 -msgid "View" +msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" #: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" #: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" #: ipalib/plugins/internal.py:362 -msgid "Quick Links" +msgid "Access Denied" msgstr "" #: ipalib/plugins/internal.py:363 -msgid "Select All" +msgid "Access Granted" msgstr "" #: ipalib/plugins/internal.py:364 -msgid "Unselect All" +msgid "Include Disabled" msgstr "" #: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +msgid "Include Enabled" msgstr "" #: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" #: ipalib/plugins/internal.py:370 -msgid "General" +msgid "Run Test" msgstr "" #: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +msgid "Specify external ${entity}" msgstr "" #: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" #: ipalib/plugins/internal.py:378 -msgid "Audit" +msgid "Host Settings" msgstr "" #: ipalib/plugins/internal.py:379 -msgid "IPA Server" +msgid "Enrolled?" msgstr "" #: ipalib/plugins/internal.py:380 -msgid "Sudo" +msgid "Enrollment" msgstr "" #: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +msgid "Fully Qualified Host Name" msgstr "" #: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" #: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +msgid "One-Time-Password Not Present" msgstr "" #: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +msgid "One-Time-Password Present" msgstr "" #: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +msgid "Reset OTP" msgstr "" #: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" msgstr "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "ಗುಂಪುಗಳು" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:445 +msgid "Allow" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:446 +msgid "Any Command" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:447 +msgid "Any Group" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" -msgstr "ಬಳಕೆದಾರನ ಹೆಸರು" +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" -msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು" +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" -msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ" +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" -msgstr "ಗರಿಷ್ಟ ನವೀಕರಣ" +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -#: ipalib/plugins/migration.py:78 +#: ipalib/plugins/internal.py:468 msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "LDAP URI" +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" -msgstr "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" -msgstr "ಬೈಂಡ್ DN" +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" -msgstr "ಬಳಕೆದಾರನ ಕಂಟೇನರ್" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" -msgstr "DSನಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ " +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" -msgstr "ಗುಂಪಿನ ಕಂಟೇನರ್" +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" -msgstr "DSನಲ್ಲಿರುವ ಗುಂಪುಗಳಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ " +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/migration.py:320 +#: ipalib/plugins/internal.py:494 msgid "" -"Continuous operation mode. Errors are reported but the process continues" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" -msgstr "" +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" + +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d ವೇರಿಯೇಬಲ್‌ಗಳು" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/netgroup.py:20 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Netgroups\n" +"Kerberos ticket policy\n" "\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" "\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" -msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು" - -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" -msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ಹೆಸರು" - -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" -msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ" - -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" -msgstr "NIS ಡೊಮೇನ್ ಹೆಸರು" +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" -msgstr "" +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" -msgstr "" +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "ಗರಿಷ್ಟ ನವೀಕರಣ" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/netgroup.py:180 +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Search for a netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" +"Migration to IPA\n" "\n" -" Display information about a netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/netgroup.py:222 -msgid "" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -" Add members to a netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/netgroup.py:258 -msgid "" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -" Remove members from a netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/passwd.py:19 -msgid "" +"The default user container is ou=People.\n" "\n" -"Set a user's password\n" +"The default group container is ou=Groups.\n" "\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" "EXAMPLES:\n" "\n" -" To reset your own password:\n" -" ipa passwd\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" -"\n" -" Set a user's password\n" -" " +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/permission.py:19 +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "" + +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "LDAP URI" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "LDAP URI of DS server to migrate from" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "ಬೈಂಡ್ DN" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "ಬಳಕೆದಾರನ ಕಂಟೇನರ್" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "DSನಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ " + +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "ಗುಂಪಿನ ಕಂಟೇನರ್" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "DSನಲ್ಲಿರುವ ಗುಂಪುಗಳಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ " + +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Permission object.\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/permission.py:119 +#: ipalib/plugins/migration.py:365 msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/permission.py:177 +#: ipalib/plugins/migration.py:389 msgid "" -"\n" -" Add a new permission.\n" -" " +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/permission.py:236 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" Delete a permission.\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/permission.py:256 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Modify a permission.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/permission.py:352 +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -" Search for permissions.\n" -" " +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" -#: ipalib/plugins/permission.py:405 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Display information about a permission.\n" -" " +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/ping.py:37 +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" PKINIT Options\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Accepts only Enable/Disable.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pkinit.py:67 +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "" + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d ವೇರಿಯೇಬಲ್‌ಗಳು" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +"retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/privilege.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Privileges\n" +"Netgroups\n" "\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" +"EXAMPLES:\n" "\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -"A privilege may not contain other privileges.\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -"See role and permission for additional information.\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" +"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ಹೆಸರು" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "NIS ಡೊಮೇನ್ ಹೆಸರು" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Delete a privilege.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/privilege.py:144 +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" + +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove members from a privilege\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:177 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -" Remove permissions from a privilege.\n" -" " -msgstr "" - -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:20 -msgid "" +"Permissions\n" "\n" -"Password policy\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" +"A permission may not contain other permissions.\n" "\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"A permission is made up of a number of different parts:\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -"EXAMPLES:\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +"EXAMPLES:\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 -msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" -msgstr "ಗುಂಪು" - -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" -msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳು)" - -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" -msgstr "ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲ್ಲಿ)" - -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" -msgstr "ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳು)" - -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" -msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳಲ್ಲಿ)" +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." +msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" -msgstr "ಇತಿಹಾಸದ ಗಾತ್ರ" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" -msgstr "ಗುಪ್ತಪದ ಇತಿಹಾಸದ ಗಾತ್ರ" +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" -msgstr "ಕ್ಯಾರೆಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" -msgstr "ಕನಿಷ್ಟ ಸಂಖ್ಯೆಯ ಕ್ಯಾರಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" -msgstr "ಕನಿಷ್ಟ ಉದ್ದ" +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" -msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಉದ್ದ" +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" -msgstr "ಆದ್ಯತೆ" +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:361 -msgid "" +"Kerberos pkinit options\n" "\n" -" Delete a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:380 -msgid "" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" -" Modify a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "ಗ್ಲೋಬಲ್ ಪಾಲಿಸಿಯಲ್ಲಿ ಆದ್ಯತೆಯನ್ನು ಸೆಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ" - -#: ipalib/plugins/pwpolicy.py:423 -msgid "" +"EXAMPLES:\n" "\n" -" Display information about password policy.\n" -" " +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" +"\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" +"\n" +"For more information on anonymous pkinit see:\n" +"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" -msgstr "ಬಳಕೆದಾರ" +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" +"Privileges\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +"A privilege may not contain other privileges.\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" +msgstr "" + +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" +msgstr "" + +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" -msgstr "ಈ ರೋಲ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" +msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Self-service Permissions\n" +"Password policy\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " -msgstr "" - -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" +msgstr "ಗುಂಪು" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" msgstr "" -#: ipalib/plugins/service.py:21 -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" -"\n" -msgstr "" +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳು)" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" +msgstr "ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲ್ಲಿ)" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" +msgstr "ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳು)" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" +msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳಲ್ಲಿ)" -#: ipalib/plugins/service.py:226 -msgid "Service principal" -msgstr "Service principal" +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" +msgstr "ಇತಿಹಾಸದ ಗಾತ್ರ" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" +msgstr "ಗುಪ್ತಪದ ಇತಿಹಾಸದ ಗಾತ್ರ" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" -msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ" +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "ಕ್ಯಾರೆಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" -msgstr "" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" +msgstr "ಕನಿಷ್ಟ ಸಂಖ್ಯೆಯ ಕ್ಯಾರಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" +msgstr "ಕನಿಷ್ಟ ಉದ್ದ" + +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಉದ್ದ" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" -msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ" +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "ಆದ್ಯತೆ" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "ಗ್ಲೋಬಲ್ ಪಾಲಿಸಿಯಲ್ಲಿ ಆದ್ಯತೆಯನ್ನು ಸೆಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "ಬಳಕೆದಾರ" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo Commands\n" +"Roles\n" "\n" -"Commands used as building blocks for sudo\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "ಈ ರೋಲ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" + +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" msgstr[0] "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." +msgstr "" + +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." +msgstr "" + +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." +msgstr "" + +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "" + +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" +msgstr "" + +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." +msgstr "" + +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -"Groups of Sudo commands\n" +"Self-service Permissions\n" "\n" -"Manage groups of Sudo commands.\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"EXAMPLES:\n" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +"EXAMPLES:\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." +msgstr "" + +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Services\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Sudo Rule management\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" -msgstr "" +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "Service principal" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" -msgstr "" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" -msgstr "" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" -msgstr "" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -" Create new Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/sudorule.py:189 -msgid "" +"Sudo Commands\n" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:197 -msgid "" +"Commands used as building blocks for sudo\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"EXAMPLES:\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" Enable a Sudo rule.\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +"Groups of Sudo Commands\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Manage groups of Sudo Commands.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" "\n" -" User object.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "ಬಳಕೆದಾರನ ಪ್ರವೇಶ" - -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "ಮೊದಲ ಹೆಸರು" - -#: ipalib/plugins/user.py:127 -msgid "Last name" -msgstr "ಕೊನೆಯ ಹೆಸರು" - -#: ipalib/plugins/user.py:130 -msgid "Full name" -msgstr "" - -#: ipalib/plugins/user.py:135 -msgid "Display name" -msgstr "" - -#: ipalib/plugins/user.py:140 -msgid "Initials" -msgstr "" - -#: ipalib/plugins/user.py:146 -msgid "Home directory" -msgstr "" - -#: ipalib/plugins/user.py:150 -msgid "GECOS field" -msgstr "GECOS ಕ್ಷೇತ್ರ" - -#: ipalib/plugins/user.py:156 -msgid "Login shell" -msgstr "ಪ್ರವೇಶ ಶೆಲ್" - -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" -msgstr "Kerberos principal" - -#: ipalib/plugins/user.py:168 -msgid "Email address" -msgstr "ಇಮೇಲ್ ವಿಳಾಸ" - -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" -msgstr "UID" - -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" -msgstr "ಕೇರಿ ವಿಳಾಸ" - -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" -msgstr "" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ" - -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" +msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು %(label)s ಎಂಟರ್ ಮಾಡಿ:" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ!" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ." +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -"%(server)r ನಲ್ಲಿ ಕ್ಲೈಂಟ್ %(cver)s ಸರ್ವರ್‌ %(sver)s ನೊಂದಿಗೆ " -"ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ" -#: ipalib/errors.py:318 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "%(server)s ಸರ್ವರ್‌ನಿಂದ ಅಜ್ಞಾತ ದೋಷ %(code)d: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." +msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "%(server)r ನಲ್ಲಿ ಸರ್ವರ್‌ನಲ್ಲಿ ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "ಅಜ್ಞಾತ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) %(name)r " +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "error on server %(server)r: %(error)s" -msgstr "%(server)r ಸರ್ವರ್‌ನಲ್ಲಿ ದೋಷ: %(error)s" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "%(uri)r ಗೆ ಸಂಪರ್ಕಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "ಅಸಿಂಧುವಾದ JSON-RPC ಬೇಡಿಕೆ: %(error)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Kerberos ದೋಷ: %(major)s/%(minor)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" -msgstr "Kerberos ಯೋಗ್ಯತಾಪತ್ರಗಳನ್ನು ಪಡೆದಿಲ್ಲ" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." +msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Service %(service)r not found in Kerberos database" -msgstr "Kerberos ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ %(service)r ಸೇವೆ(ಸರ್ವಿಸ್) ಸಿಗುತ್ತಿಲ್ಲ" +msgid "Disabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" -msgstr "ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಯೋಗ್ಯತಾಪತ್ರಗಳು ಸಿಗುತ್ತಿಲ್ಲ" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "ಟಿಕೆಟ್‌ನ ಅವಧಿ ಮುಗಿದಿದೆ" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" -msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನ ಅನುಮತಿಗಳು ಸರಿಯಿಲ್ಲ" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" -msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಜೋಡಣೆ ಸರಿಯಿಲ್ಲ" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" -msgstr "ಕೋರಿದ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕಾಗಿ KDC ಯನ್ನು ಬಗೆಹರಿಸಲು ಆಗುತ್ತಿಲ್ಲ" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಸಾಲದಾಗಿದೆ: %(info)s" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಯಾವುದೇ ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:661 -#, 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] "" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -"ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ಮತ್ತು ಆಯ್ಕೆಗಳನ್ನು ಒಂದರಮೇಲೊಂದಾಗಿಸಲಾಗುತ್ತಿದೆ: %(names)r" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "%(name)r ಅಗತ್ಯವಿದೆ" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "ಅಸಿಂಧುವಾದ %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "api has no such namespace: %(name)r" -msgstr "apiನಲ್ಲಿ ಆ ತರಹದ ಯಾವುದೇ ನೇಮ್‌ಸ್ಪೇಸ್ ಇಲ್ಲ: %(name)r" - -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ" - -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್)ಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಿಲ್ಲ" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "%(reason)s" -msgstr "%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" +msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -"ಒಂದು ಹೋಸ್ಟ್ ಸೇವೆ(ಸರ್ವಿಸ್)ಯನ್ನು ರಚಿಸುವ ಸಲುವಾಗಿ ನೀವು ಒಂದು ಹೋಸ್ಟ್ ಅನ್ನು " -"ಸೇರಿಸಲೇಬೇಕಾಗಿದೆ" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -"Service principalನ ಸ್ವರೂಪ ಹೀಗಿಲ್ಲ: service/fully-qualified host name: " -"%(reason)s" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -"principalನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ವು ಈ IPA ಸರ್ವರ್‌ನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕೆ " -"ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "ಈ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ರೂಟ್(root) ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಕೋರುತ್ತದೆ" +#: ipalib/plugins/user.py:177 +msgid "User login" +msgstr "ಬಳಕೆದಾರನ ಪ್ರವೇಶ" -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "ಇದು ಈಗಾಗಲೇ posix ಗುಂಪು" +#: ipalib/plugins/user.py:184 +msgid "First name" +msgstr "ಮೊದಲ ಹೆಸರು" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" -msgstr "Principalನ ಸ್ವರೂಪ user@REALM ನಂತಲ್ಲ: %(principal)r" +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "ಕೊನೆಯ ಹೆಸರು" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯ ಆಗದಿರಬಹುದು" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" +msgstr "GECOS ಕ್ಷೇತ್ರ" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" -msgstr "" +#: ipalib/plugins/user.py:218 +msgid "Login shell" +msgstr "ಪ್ರವೇಶ ಶೆಲ್" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Base64 ಡೆಕೋಡಿಂಗ್ ವಿಫಲಗೊಂಡಿದೆ: %(reason)s" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" +msgstr "Kerberos principal" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" -msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯನಂತೆ ಸೇರಿಸಲು ಆಗದಿರಬಹುದು" +#: ipalib/plugins/user.py:231 +msgid "Email address" +msgstr "ಇಮೇಲ್ ವಿಳಾಸ" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" -msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪನ್ನು ತೆಗೆದುಹಾಕಲು ಆಗುವುದಿಲ್ಲ" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "UID" + +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "ಕೇರಿ ವಿಳಾಸ" + +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" -msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಇಲ್ಲ ಸಹಾಯದ ಟಾಪಿಕ್ %(topic)r ಕೂಡ ಇಲ್ಲ" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "ಬದಲಾವಣೆ ಮತ್ತೊಂದು ಬದಲಾವಣೆಯೊಂದಿಗೆ ಡಿಕ್ಕಿಹೊಡೆದಿದೆ" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" +msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" -msgstr "ಯಾವುದೇ ಬದಲಾವಣೆಗಳು ನಡೆಯಬಾರದು" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" +msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" -msgstr "ಈ ಕ್ವೇರಿಗೆ ಮಿತಿಗಳು ಮೀರಿವೆ" +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" +msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1350 +#: ipalib/plugins/user.py:340 #, python-format -msgid "%(attr)s: Invalid syntax." +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/errors.py:1391 +#: ipalib/plugins/user.py:361 #, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s" +msgid "Added user \"%(value)s\"" +msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "ಫಲಿತಾಂಶಗಳು ಕತ್ತರಿಸಲ್ಪಟ್ಟಿವೆ, ಹೆಚ್ಚ್ಹು ನಿರ್ದಿಷ್ಟವಾದ ಶೋಧನೆ ಪ್ರಯತ್ನಿಸಿ" - -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" -msgstr "" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "ಸರಿಯಲ್ಲದ ಬಗೆ" - -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ" - -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "ನಿಜ (True) ಅಥವಾ ಸುಳ್ಳು (False) ಆಗಿರಲೇಬೇಕು" - -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "ಇನ್ಟೀಜರ್ ಆಗಿರಲೇಬೇಕು" - -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)d ಆಗಿರಲೇಬೇಕು" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)d ಆಗಿರಬಹುದು" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "ದಶಾಂಶ ಸಂಖ್ಯೆ ಆಗಿರಲೇಬೇಕು" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)f ಆಗಿರಲೇಬೇಕು" +msgid "Disabled user account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)f ಆಗಿರಬಹುದು" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." +msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕು" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕು" +msgid "Enabled user account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." +msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಬೈಟ್ಸ್ ಆಗಿರಬಹುದು" +msgid "Unlocked account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" -msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" +msgid "Permission denied: %(file)s" +msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "ಯುನಿಕೋಡ್ ಪಠ್ಯ ಆಗಿರಲೇಬೇಕು" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು" +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" -msgstr "%(values)r ನಲ್ಲಿ ಒಂದು ಆಗಿರಲೇಬೇಕು" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "CMS (%s) ಜೊತೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ" @@ -7152,14 +7264,17 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form " "\"%(subject_base)s\"" -msgstr "" -"ಕೋರಿಕೆ ವಿಷಯ \"%(request_subject)s\" ಸ್ವರೂಪ \"%(subject_base)s\" ಕ್ಕೆ " -"ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ" +msgstr "ಕೋರಿಕೆ ವಿಷಯ \"%(request_subject)s\" ಸ್ವರೂಪ \"%(subject_base)s\" ಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ" #: ipaserver/plugins/selfsign.py:104 #, python-format @@ -7178,283 +7293,297 @@ msgstr "ಮುಂದಿನ ಸೀರಿಯಲ್ ನಂಬರ್ ಅನ್ನು msgid "certutil failure" msgstr "certutil ವಿಫಲತೆ" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7474,248 +7603,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7806,5 +7923,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/ko.po b/install/po/ko.po index e8c3450b5..47157653e 100644 --- a/install/po/ko.po +++ b/install/po/ko.po @@ -2,7122 +2,7246 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:50+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Korean (http://www.transifex.net/projects/p/fedora/team/ko/)\n" +"Language-Team: Korean (http://www.transifex.net/projects/p/fedora/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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] "" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" + +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" +"\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:80 +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -" IPA configuration object\n" -" " +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:431 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Delete DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:439 -msgid "" +"IPA certificate operations\n" "\n" -" Modify DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:452 -msgid "" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Search for DNS zones (SOA records).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:460 -msgid "" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" +"\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:215 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:286 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:479 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:724 +msgid "SOA class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1259 +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/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" - -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" -msgstr "" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/kerberos.py:79 +#: ipalib/plugins/internal.py:147 msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" +msgstr "" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:239 +msgid "Settings" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" PKINIT Options\n" -" " +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" - -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 -msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/internal.py:344 +msgid "Any Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/internal.py:346 +msgid "Accessing" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/role.py:20 -msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" + +#: ipalib/plugins/internal.py:494 +msgid "" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "" + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" + +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "" + +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" + +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "" + +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "" + +#: ipalib/plugins/internal.py:513 +msgid "undo" +msgstr "" + +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" + +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" +msgstr "" + +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "" + +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "" + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." +msgstr "" + +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "" + +#: ipalib/plugins/migration.py:255 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "" + +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "" + +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "" + +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "" + +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "" + +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" +msgstr "" + +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" +msgstr "" + +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" +msgstr "" + +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" + +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" +msgstr "" + +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" + +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "" + +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" + +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" + +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" + +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "" + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "" + +#: ipalib/plugins/migration.py:448 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "" + +#: ipalib/plugins/misc.py:25 +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" + +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "" + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Netgroups\n" "\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:181 +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Search for a self-service permission.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" + +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Services\n" +"Permissions\n" "\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A permission may not contain other permissions.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"A permission is made up of a number of different parts:\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" +"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\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" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "" + +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "" + +#: ipalib/plugins/permission.py:94 +msgid "permission" +msgstr "" + +#: ipalib/plugins/permission.py:95 +msgid "permissions" +msgstr "" + +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "" + +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "" + +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "" + +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "" + +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "" + +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." +msgstr "" + +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 +msgid "" +"\n" +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." +msgstr "" + +#: ipalib/plugins/pkinit.py:25 +msgid "" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"Kerberos pkinit options\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +"EXAMPLES:\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" "\n" -" entry_attrs is a dict of an entry\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" returns nothing\n" -" " +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" +"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" +"\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Roles\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Privileges are assigned to Roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -" Sudo Rule management\n" -" " +"Roles can not contain other roles.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" +"\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" User object.\n" -" " msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:295 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" Add a new user.\n" -" " +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" msgstr[0] "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:507 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Enable a user account.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:641 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "command %(name)r takes no arguments" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:661 +#: ipalib/plugins/sudorule.py:226 #, 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] "" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "overlapping arguments and options: %(names)r" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:707 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "%(name)r is required" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "invalid %(name)r: %(error)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "api has no such namespace: %(name)r" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:922 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:488 #, python-format -msgid "must be at least %(minvalue)d" +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1097 -#, python-format -msgid "must be at least %(minvalue)f" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1107 +#: ipalib/plugins/user.py:539 #, python-format -msgid "can be at most %(maxvalue)f" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" + +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" + +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must match pattern \"%(pattern)s\"" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1192 -msgid "must be binary data" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must be at least %(minlength)d bytes" +msgid "Enabled user account \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7138,6 +7262,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7162,283 +7291,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7458,248 +7601,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7790,5 +7921,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/nl.po b/install/po/nl.po index 4dd4cbc9c..6cd4cc0d9 100644 --- a/install/po/nl.po +++ b/install/po/nl.po @@ -2,4333 +2,4146 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Geert Warrink , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-04 18:47+0000\n" -"Last-Translator: warrink \n" -"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/team/nl/)\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" +"Last-Translator: Geert Warrink \n" +"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Wachtwoorden komen niet overheen!" + +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:664 +#, 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:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\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" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"For more information on anonymous pkinit see:\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." +msgstr "" + +#: ipalib/plugins/privilege.py:23 +msgid "" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"A privilege may not contain other privileges.\n" "\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" +"\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"EXAMPLES:\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." +msgstr "" + +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "Wachtwoorden komen niet overheen!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" +msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7158,6 +7287,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7182,283 +7316,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7478,248 +7626,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7810,5 +7946,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/pl.po b/install/po/pl.po index 09b2a31c2..0d1d3408e 100644 --- a/install/po/pl.po +++ b/install/po/pl.po @@ -2,164 +2,516 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # jdennis , 2011. # Piotr Drąg , 2010. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-10 21:41+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" -"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/team/pl/)\n" +"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: ipalib/plugins/__init__.py:20 +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: " + +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Hasła się nie zgadzają." + +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Anulowano." + +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" +msgstr "" + +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." +msgstr "" + +#: ipalib/cli.py:772 +msgid "Built-in commands:" +msgstr "" + +#: ipalib/cli.py:774 +msgid "Help subtopics:" +msgstr "" + +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "" + +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "" + +#: ipalib/cli.py:816 +msgid "Topic commands:" +msgstr "" + +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "" + +#: ipalib/cli.py:1130 +msgid "No file to read" +msgstr "" + +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na %(server)r" + +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "nieznany błąd %(code)d z %(server)s: %(error)s" + +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "wystąpił wewnętrzny błąd" + +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "wystąpił wewnętrzny błąd w serwerze na %(server)r" + +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "nieznane polecenie %(name)r" + +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "błąd w serwerze %(server)r: %(error)s" + +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "nie można połączyć się z %(uri)r: %(error)s" + +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s" + +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "" + +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Błąd Kerberosa: %(major)s/%(minor)s" + +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "nie otrzymano danych uwierzytelniających Kerberosa" + +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "Nie odnaleziono usługi %(service)r w bazie danych Kerberosa" + +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających" + +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "Zgłoszenie wygasło" + +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne" + +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających" + +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "Nie można rozwiązać KDC dla żądanego obszaru" + +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Niewystarczający dostęp: %(info)s" + +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "polecenie %(name)r nie przyjmuje parametrów" + +#: ipalib/errors.py:664 +#, 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] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametr" +msgstr[1] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametry" +msgstr[2] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametrów" + +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "pokrywanie parametrów i opcji: %(names)r" + +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "%(name)r jest wymagane" + +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "nieprawidłowe %(name)r: %(error)s" + +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "API nie posiada takiej przestrzeni nazw: %(name)r" + +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Hasła się nie zgadzają" + +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "Polecenie nie jest zaimplementowane" + +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "" + +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Ten wpis już istnieje" + +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "Należy zapisać się do komputera, aby utworzyć jego usługę" + +#: ipalib/errors.py:861 +#, python-format msgid "" -"\n" -"Sub-package containing all core plugins.\n" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "Naczelnik usługi nie jest w formacie: usługa/w pełni kwalifikowana nazwa komputera: %(reason)s" + +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "Obszar naczelnika nie zgadza się z obszarem dla tego serwera IPA" + +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "Te polecenie wymaga dostępu roota" + +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "To jest już grupa POSIX" + +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "Naczelnik nie jest w formacie użytkownik@OBSZAR: %(principal)r" + +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "" + +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "" + +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "" + +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "" + +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "Grupa nie może być własnym elementem" + +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:20 +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Dekodowanie base64 nie powiodło się: %(reason)s" + +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "Nie można dodać grupy jako elementu jej samej" + +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "Nie można usunąć domyślnej grupy użytkowników" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "Komputer nie posiada pasującego wpisu DNS A" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "Usuwanie zarządzanej grupy nie jest dozwolone. Musi zostać najpierw odłączona." + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "" + +#: ipalib/errors.py:1230 +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" + +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r" + +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "zmiana koliduje z inną zmianą" + +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "żadne modyfikacje nie zostaną wykonane" + +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "" + +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "przekroczono ograniczenia dla tego zapytania" + +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "" + +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "" + +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "" + +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "" + +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Nie można ukończyć działania na certyfikacie: %(error)s" + +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Błąd formatu certyfikatu: %(error)s" + +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "Lista wartości ACI" +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "" + +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania" -#: ipalib/plugins/aci.py:172 +#: ipalib/frontend.py:821 msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie" + +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "Słownik reprezentujący wpis LDAP" + +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "Lista wpisów LDAP" + +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik" + +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "niepoprawny typ" + +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "Dozwolona jest tylko jedna wartość" + +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "musi być prawdą lub fałszem" + +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "musi być liczba całkowitą" + +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "musi wynosić co najmniej %(minvalue)d" + +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "może wynosić co najwyżej %(maxvalue)d" + +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "musi być liczbą dziesiętną" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "musi wynosić co najmniej %(minvalue)f" + +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "może wynosić co najwyżej %(maxvalue)f" + +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "musi pasować do wzorca \"%(pattern)s\"" + +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "musi być danymi binarnymi" + +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "musi wynosić co najmniej %(minlength)d bajtów" + +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "może wynosić co najwyżej %(maxlength)d bajtów" + +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "musi wynosić dokładnie %(length)d bajtów" + +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "musi być tekstem w unikodzie" + +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "" + +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "musi wynosić co najmniej %(minlength)d znaków" + +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "może wynosić co najwyżej %(maxlength)d znaków" + +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "musi wynosić dokładnie %(length)d znaków" + +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "musi być jednym z %(values)r" + +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" +msgstr "Lista wartości ACI" + #: ipalib/plugins/aci.py:215 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "wartości \"type\", \"filter\", \"subtree\" i \"targetgroup\" są wzajemnie wyłączne" @@ -172,9 +524,7 @@ msgstr "" msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" -msgstr "" -"co najmniej jedna z wartości: \"type\", \"filter\", \"subtree\", " -"\"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana" +msgstr "co najmniej jedna z wartości: \"type\", \"filter\", \"subtree\", \"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana" #: ipalib/plugins/aci.py:224 msgid "filter and memberof are mutually exclusive" @@ -189,6 +539,7 @@ msgid "One of group, permission or self is required" msgstr "" #: ipalib/plugins/aci.py:251 +#, python-format msgid "Group '%s' does not exist" msgstr "Grupa \"%s\" nie istnieje" @@ -197,20 +548,12 @@ msgid "empty filter" msgstr "" #: ipalib/plugins/aci.py:294 +#, python-format msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:379 +#, python-format msgid "ACI with name \"%s\" not found" msgstr "Nie odnaleziono ACI o nazwie \"%s\"" @@ -224,13 +567,6 @@ msgid "" "none)" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:412 msgid "ACIs" msgstr "ACI" @@ -239,225 +575,441 @@ msgstr "ACI" msgid "ACI name" msgstr "Nazwa ACI" -#: ipalib/plugins/aci.py:422 +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 msgid "Permission" msgstr "" -#: ipalib/plugins/aci.py:423 +#: ipalib/plugins/aci.py:424 msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 msgid "User group" msgstr "Grupa użytkowników" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 msgid "User group ACI grants access to" msgstr "Grupa użytkowników, do której ACI zapewnia dostęp" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 msgid "Permissions" msgstr "Uprawnienia" -#: ipalib/plugins/aci.py:433 +#: ipalib/plugins/aci.py:436 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, all)" -msgstr "" -"lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, " -"dodanie, usunięcie, wszystkie)" +msgstr "lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, dodanie, usunięcie, wszystkie)" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 msgid "Attributes" msgstr "Atrybuty" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 msgid "Comma-separated list of attributes" msgstr "Lista atrybutów oddzielonych przecinkami" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 msgid "Type" msgstr "Typ" -#: ipalib/plugins/aci.py:445 +#: ipalib/plugins/aci.py:452 msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/aci.py:450 +#: ipalib/plugins/aci.py:458 msgid "Member of" msgstr "Element" -#: ipalib/plugins/aci.py:451 +#: ipalib/plugins/aci.py:459 msgid "Member of a group" msgstr "Element grupy" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 msgid "Filter" msgstr "Filtr" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "Dozwolony filtr LDAP (np. ou=Inżynieria)" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 msgid "Subtree" msgstr "Poddrzewo" -#: ipalib/plugins/aci.py:461 +#: ipalib/plugins/aci.py:471 msgid "Subtree to apply ACI to" msgstr "Poddrzewo, do którego zastosować ACI" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 msgid "Target group" msgstr "Grupa docelowa" -#: ipalib/plugins/aci.py:466 +#: ipalib/plugins/aci.py:477 msgid "Group to apply ACI to" msgstr "Grupa, do której zastosować ACI" -#: ipalib/plugins/aci.py:470 +#: ipalib/plugins/aci.py:482 msgid "Target your own entry (self)" msgstr "Cel własnego wpisu (\"self\")" -#: ipalib/plugins/aci.py:471 +#: ipalib/plugins/aci.py:483 msgid "Apply ACI to your own entry (self)" msgstr "Zastosowanie ACI do własnego wpisu (\"self\")" -#: ipalib/plugins/aci.py:478 +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "Utworzono ACI \"%(value)s\"" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Usunięto ACI \"%(value)s\"" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Zmodyfikowano ACI \"%(value)s\"" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "Pasuje %(count)d ACI" +msgstr[1] "Pasują %(count)d ACI" +msgstr[2] "Pasuje %(count)d ACI" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" Create new ACI.\n" -" " +"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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" -msgstr "Utworzono ACI \"%(value)s\"" +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "" + +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "" + +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "" + +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "" + +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "" + +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/aci.py:493 +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "Opis" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "" + +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "" + +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Execute the aci-create operation.\n" +" Add an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "" + +#: ipalib/plugins/automember.py:252 +msgid "" "\n" -" Returns the entry as it will be created in LDAP.\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "" + +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 +msgid "" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" +" Override this so we can add completed and failed to the return result.\n" " " msgstr "" -#: ipalib/plugins/aci.py:533 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Delete ACI.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "Usunięto ACI \"%(value)s\"" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" -#: ipalib/plugins/aci.py:543 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" +" Override this so we can set completed and failed.\n" " " msgstr "" -#: ipalib/plugins/aci.py:576 +#: ipalib/plugins/automember.py:434 msgid "" "\n" -" Modify ACI.\n" +" Modify an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "Zmodyfikowano ACI \"%(value)s\"" - -#: ipalib/plugins/aci.py:633 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "Pasuje %(count)d ACI" -msgstr[1] "Pasują %(count)d ACI" -msgstr[2] "Pasuje %(count)d ACI" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" -#: ipalib/plugins/aci.py:823 +#: ipalib/plugins/automember.py:466 msgid "" "\n" -" Display a single ACI given an ACI name.\n" +" Search for automember rules.\n" " " msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" +" Display information about an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:502 +msgid "" "\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +" Set default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Rename an ACI.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 +msgid "" +"\n" +" Display information about the default automember groups.\n" +" " msgstr "" -#: ipalib/plugins/automount.py:20 +#: ipalib/plugins/automount.py:29 msgid "" "\n" "Automount\n" @@ -545,673 +1097,586 @@ msgid "" " ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/automount.py:190 +#: ipalib/plugins/automount.py:192 +msgid "automount locations" +msgstr "" + +#: ipalib/plugins/automount.py:195 msgid "Automount Locations" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "" + +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 msgid "Location" msgstr "Położenie" -#: ipalib/plugins/automount.py:197 +#: ipalib/plugins/automount.py:202 msgid "Automount location name." msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/automount.py:314 +#: ipalib/plugins/automount.py:323 msgid "Master file" msgstr "" -#: ipalib/plugins/automount.py:315 +#: ipalib/plugins/automount.py:324 msgid "Automount master file." msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/plugins/automount.py:331 msgid "" "Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/automount.py:334 +#: ipalib/plugins/automount.py:343 +#, python-format msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/automount.py:505 +#: ipalib/plugins/automount.py:520 msgid "Map" msgstr "Mapa" -#: ipalib/plugins/automount.py:506 +#: ipalib/plugins/automount.py:521 msgid "Automount map name." msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "Opis" - -#: ipalib/plugins/automount.py:515 +#: ipalib/plugins/automount.py:530 msgid "Automount Maps" msgstr "Automatyczne montowanie map" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "" + +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "" + +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "" + +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 msgid "Key" msgstr "Klucz" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 msgid "Automount key name." msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 msgid "Mount information" msgstr "Informacje o montowaniu" -#: ipalib/plugins/automount.py:597 +#: ipalib/plugins/automount.py:615 msgid "description" msgstr "opis" -#: ipalib/plugins/automount.py:606 +#: ipalib/plugins/automount.py:624 msgid "Automount Keys" msgstr "Automatyczne montowanie kluczy" -#: ipalib/plugins/automount.py:607 +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" "The key,info pair must be unique. A key named %(key)s with info %(info)s " "already exists" msgstr "" -#: ipalib/plugins/automount.py:608 +#: ipalib/plugins/automount.py:627 +#, python-format msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/automount.py:609 +#: ipalib/plugins/automount.py:628 +#, python-format msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/automount.py:659 +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" "More than one entry with key %(key)s found, use --info to select specific " "entry." msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "" + +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:748 +#: ipalib/plugins/automount.py:768 msgid "Mount point" msgstr "Punkt montowania" -#: ipalib/plugins/automount.py:752 +#: ipalib/plugins/automount.py:772 msgid "Parent map" msgstr "Mapa nadrzędna" -#: ipalib/plugins/automount.py:753 +#: ipalib/plugins/automount.py:773 msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/baseldap.py:39 +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "Hasło" + +#: ipalib/plugins/baseldap.py:43 msgid "Failed members" msgstr "Elementy, które się nie powiodły" -#: ipalib/plugins/baseldap.py:42 +#: ipalib/plugins/baseldap.py:46 msgid "Member users" msgstr "Elementy użytkowników" -#: ipalib/plugins/baseldap.py:45 +#: ipalib/plugins/baseldap.py:49 msgid "Member groups" msgstr "Elementy grupy" -#: ipalib/plugins/baseldap.py:48 +#: ipalib/plugins/baseldap.py:52 msgid "Member of groups" msgstr "" -#: ipalib/plugins/baseldap.py:51 +#: ipalib/plugins/baseldap.py:55 msgid "Member hosts" msgstr "Element komputerów" -#: ipalib/plugins/baseldap.py:54 +#: ipalib/plugins/baseldap.py:58 msgid "Member host-groups" msgstr "Element grupy komputerów" -#: ipalib/plugins/baseldap.py:57 +#: ipalib/plugins/baseldap.py:61 msgid "Member of host-groups" msgstr "Element grupy komputerów" -#: ipalib/plugins/baseldap.py:66 +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 msgid "Roles" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 msgid "Sudo Command Groups" msgstr "Grupy polecenia sudo" -#: ipalib/plugins/baseldap.py:75 +#: ipalib/plugins/baseldap.py:79 msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/baseldap.py:78 +#: ipalib/plugins/baseldap.py:82 msgid "Member netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:81 +#: ipalib/plugins/baseldap.py:85 msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:84 +#: ipalib/plugins/baseldap.py:88 msgid "Member services" msgstr "Usługi elementów" -#: ipalib/plugins/baseldap.py:87 +#: ipalib/plugins/baseldap.py:91 msgid "Member service groups" msgstr "Grupy usługi elementów" -#: ipalib/plugins/baseldap.py:93 +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:100 msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/baseldap.py:102 +#: ipalib/plugins/baseldap.py:109 msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/baseldap.py:105 +#: ipalib/plugins/baseldap.py:112 msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/baseldap.py:108 +#: ipalib/plugins/baseldap.py:115 msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/baseldap.py:111 +#: ipalib/plugins/baseldap.py:118 msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/baseldap.py:114 +#: ipalib/plugins/baseldap.py:121 msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/baseldap.py:117 +#: ipalib/plugins/baseldap.py:124 msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/baseldap.py:120 +#: ipalib/plugins/baseldap.py:127 msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/baseldap.py:123 +#: ipalib/plugins/baseldap.py:130 msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/baseldap.py:126 +#: ipalib/plugins/baseldap.py:133 msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/baseldap.py:141 +#: ipalib/plugins/baseldap.py:148 msgid "External host" msgstr "Zewnętrzny komputer" -#: ipalib/plugins/baseldap.py:144 +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:154 msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/baseldap.py:147 +#: ipalib/plugins/baseldap.py:157 msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/baseldap.py:281 +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 msgid "Entry" msgstr "" -#: ipalib/plugins/baseldap.py:283 +#: ipalib/plugins/baseldap.py:342 +#, python-format msgid "container entry (%(container)s) not found" msgstr "nie odnaleziono wpisu kontenera (%(container)s)" -#: ipalib/plugins/baseldap.py:284 +#: ipalib/plugins/baseldap.py:343 +#, python-format msgid "%(parent)s: %(oname)s not found" msgstr "%(parent)s: nie odnaleziono %(oname)s" -#: ipalib/plugins/baseldap.py:285 +#: ipalib/plugins/baseldap.py:344 +#, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "%(pkey)s: nie odnaleziono %(oname)s" -#: ipalib/plugins/baseldap.py:286 +#: ipalib/plugins/baseldap.py:345 +#, python-format msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." -msgstr "" - -#: ipalib/plugins/baseldap.py:420 +#: ipalib/plugins/baseldap.py:632 msgid "" "Set an attribute to a name/value pair. Format is attr=value.\n" "For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:474 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -" Callback registration interface\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/baseldap.py:727 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/baseldap.py:733 +#: ipalib/plugins/baseldap.py:965 msgid "Continuous mode: Don't stop on errors." msgstr "Tryb ciągły: bez zatrzymywania po błędach." -#: ipalib/plugins/baseldap.py:750 -msgid "" -"\n" -" Retrieve an LDAP entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:837 +#: ipalib/plugins/baseldap.py:1072 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:838 +#: ipalib/plugins/baseldap.py:1073 +#, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:957 +#: ipalib/plugins/baseldap.py:1165 msgid "the entry was deleted while being modified" msgstr "wpis został usunięty podczas modyfikowania" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1120 -msgid "" -"\n" -" Add other LDAP entries to members.\n" -" " +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 msgid "Members that could not be added" msgstr "Elementy, które nie mogły zostać dodane" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 msgid "Number of members added" msgstr "Liczba dodanych elementów" -#: ipalib/plugins/baseldap.py:1226 -msgid "" -"\n" -" Remove LDAP entries from members.\n" -" " +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 msgid "Members that could not be removed" msgstr "Liczba elementów, które nie mogły zostać usunięte" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 msgid "Number of members removed" msgstr "Liczba usuniętych elementów" -#: ipalib/plugins/baseldap.py:1335 -msgid "" -"\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." +msgstr "" + +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/baseldap.py:1344 +#: ipalib/plugins/baseldap.py:1557 msgid "Time Limit" msgstr "Ograniczenie czasu" -#: ipalib/plugins/baseldap.py:1345 +#: ipalib/plugins/baseldap.py:1558 msgid "Time limit of search in seconds" msgstr "Ograniczenie czasu wyszukiwania w sekundach" -#: ipalib/plugins/baseldap.py:1351 +#: ipalib/plugins/baseldap.py:1564 msgid "Size Limit" msgstr "Ograniczenie rozmiaru" -#: ipalib/plugins/baseldap.py:1352 +#: ipalib/plugins/baseldap.py:1565 msgid "Maximum number of entries returned" msgstr "Maksymalna liczba zwróconych wpisów" -#: ipalib/plugins/baseldap.py:1552 -msgid "" -"\n" -" Base class for reverse member manipulation.\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1574 -msgid "" -"\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" -" " +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1654 +#: ipalib/plugins/baseldap.py:1881 msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:1687 -msgid "" -"\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:1767 +#: ipalib/plugins/baseldap.py:1994 msgid "removed" msgstr "" -#: ipalib/plugins/batch.py:21 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 +#: ipalib/plugins/batch.py:62 msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 +#: ipalib/plugins/cert.py:43 msgid "" "\n" "IPA certificate operations\n" @@ -1273,961 +1738,1100 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " -msgstr "" - #: ipalib/plugins/cert.py:112 msgid "Failure decoding Certificate Signing Request:" msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się:" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 msgid "Failure decoding Certificate Signing Request" msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:139 +#: ipalib/plugins/cert.py:144 +#, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się: %s" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 msgid "Principal" msgstr "Naczelnik" -#: ipalib/plugins/cert.py:217 +#: ipalib/plugins/cert.py:221 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "Naczelnik usługi dla tego certyfikatu (np. HTTP/test.przykład.pl)" -#: ipalib/plugins/cert.py:224 +#: ipalib/plugins/cert.py:228 msgid "automatically add the principal if it doesn't exist" msgstr "automatycznie dodaj naczelnika, jeśli nie istnieje" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 msgid "Certificate" msgstr "Certyfikat" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 msgid "Subject" msgstr "Temat" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 msgid "Issuer" msgstr "Wydawca" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 msgid "Not Before" msgstr "Nie wcześniej" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 msgid "Not After" msgstr "Nie po" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 msgid "Fingerprint (MD5)" msgstr "Odcisk (MD5)" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" -msgstr "Odcisk (SHA1)" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" +msgstr "Odcisk (SHA1)" + +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" +msgstr "Numer seryjny" + +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" +msgstr "Nazwa zmiennej mapowania słownika do ustawienia jako wartość" + +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." +msgstr "" + +#: ipalib/plugins/cert.py:404 +msgid "Request id" +msgstr "Identyfikator żądania" + +#: ipalib/plugins/cert.py:410 +msgid "Request status" +msgstr "Stan żądania" + +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "Numer seryjny w formie dziesiętnej lub szesnastkowej, jeśli poprzedzone 0x" + +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." +msgstr "" + +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" +msgstr "Przyczyna unieważnienia" + +#: ipalib/plugins/cert.py:466 +msgid "Output filename" +msgstr "" + +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." +msgstr "" + +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." +msgstr "" + +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "Unieważniono" + +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "Przyczyna" + +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" +msgstr "Przyczyna unieważnienia certyfikatu (0-10)" + +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" +msgstr "" + +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." +msgstr "" + +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" +msgstr "Cofnięto unieważnienie" + +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "Błąd" + +#: ipalib/plugins/config.py:31 +msgid "" +"\n" +"Server configuration\n" +"\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" +"\n" +"NOTES:\n" +"\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" +"\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" +"\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic server configuration:\n" +" ipa config-show\n" +"\n" +" Show all configuration options:\n" +" ipa config-show --all\n" +"\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" +msgstr "" + +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." +msgstr "" + +#: ipalib/plugins/config.py:80 +msgid "configuration options" +msgstr "" + +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" +msgstr "Konfiguracja" + +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" +msgstr "" + +#: ipalib/plugins/config.py:100 +msgid "Home directory base" +msgstr "Podstawa katalogu domowego" + +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" +msgstr "" + +#: ipalib/plugins/config.py:105 +msgid "Default shell" +msgstr "Domyślna powłoka" + +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" +msgstr "" + +#: ipalib/plugins/config.py:110 +msgid "Default users group" +msgstr "Domyślna grupa użytkowników" + +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" +msgstr "" + +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" +msgstr "" + +#: ipalib/plugins/config.py:120 +msgid "Search time limit" +msgstr "Ograniczenie czasu wyszukiwania" + +#: ipalib/plugins/config.py:121 +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "" + +#: ipalib/plugins/config.py:126 +msgid "Search size limit" +msgstr "Ograniczenie rozmiaru wyszukiwania" + +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "" + +#: ipalib/plugins/config.py:132 +msgid "User search fields" +msgstr "Pola wyszukiwania użytkowników" + +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "" + +#: ipalib/plugins/config.py:138 +msgid "" +"A comma-separated list of fields to search in when searching for groups" +msgstr "" + +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" +msgstr "" + +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" +msgstr "Podstawa tematu certyfikatu" + +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "" + +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" +msgstr "" + +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" +msgstr "" + +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" +msgstr "" + +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" +msgstr "" + +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" +msgstr "" + +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" +msgstr "" + +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" +msgstr "" + +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" +msgstr "" + +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." +msgstr "" + +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "" + +#: ipalib/plugins/config.py:215 +msgid "May not be empty" +msgstr "" + +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" +msgstr "" + +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "" + +#: ipalib/plugins/delegation.py:28 +msgid "" +"\n" +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" +msgstr "" + +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" +msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" -msgstr "Numer seryjny" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" +msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" -msgstr "Nazwa zmiennej mapowania słownika do ustawienia jako wartość" +#: ipalib/plugins/delegation.py:101 +msgid "delegation" +msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" -msgstr "Identyfikator żądania" +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" -msgstr "Stan żądania" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" +msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -"Numer seryjny w formie dziesiętnej lub szesnastkowej, jeśli poprzedzone 0x" -#: ipalib/plugins/cert.py:431 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" -msgstr "Przyczyna unieważnienia" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" +msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" -msgstr "Unieważniono" +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." +msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "Przyczyna" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "Przyczyna unieważnienia certyfikatu (0-10)" +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." +msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" -msgstr "Cofnięto unieważnienie" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." +msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "Błąd" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." +msgstr "" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Manage the IPA configuration\n" +"Domain Name System (DNS)\n" "\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" +"Manage DNS zone and resource records.\n" "\n" -" To show the current configuration:\n" -" ipa config-show\n" +"EXAMPLES:\n" "\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available options are:\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" +"\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -"User management options:\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -"Server Configuration.\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" "\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" -msgstr "Konfiguracja" - -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" -msgstr "Podstawa katalogu domowego" - -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" -msgstr "Domyślna powłoka" - -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" -msgstr "Domyślna grupa użytkowników" - -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" -msgstr "Ograniczenie czasu wyszukiwania" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" +msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" -msgstr "Ograniczenie rozmiaru wyszukiwania" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" -msgstr "Pola wyszukiwania użytkowników" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "Tryb migracji" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" +msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" -msgstr "Podstawa tematu certyfikatu" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:183 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify configuration options.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/dns.py:423 +msgid "" +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 +#: ipalib/plugins/dns.py:439 msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/delegation.py:152 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add a new delegation.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/delegation.py:176 +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Delete a delegation.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/delegation.py:219 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Search for delegations.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "" -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" +msgstr "" -#: ipalib/plugins/dns.py:289 +#: ipalib/plugins/dns.py:652 msgid "Zone name" msgstr "Nazwa strefy" -#: ipalib/plugins/dns.py:290 +#: ipalib/plugins/dns.py:653 msgid "Zone name (FQDN)" msgstr "Nazwa strefy (FQDN)" -#: ipalib/plugins/dns.py:296 +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" + +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" + +#: ipalib/plugins/dns.py:665 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:308 +#: ipalib/plugins/dns.py:678 msgid "SOA serial" msgstr "Numer seryjny SOA" -#: ipalib/plugins/dns.py:309 +#: ipalib/plugins/dns.py:679 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:316 +#: ipalib/plugins/dns.py:686 msgid "SOA refresh" msgstr "Odświeżenie SOA" -#: ipalib/plugins/dns.py:317 +#: ipalib/plugins/dns.py:687 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:324 +#: ipalib/plugins/dns.py:694 msgid "SOA retry" msgstr "Ponowienie SOA" -#: ipalib/plugins/dns.py:325 +#: ipalib/plugins/dns.py:695 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:332 +#: ipalib/plugins/dns.py:702 msgid "SOA expire" msgstr "Wygaszenie SOA" -#: ipalib/plugins/dns.py:333 +#: ipalib/plugins/dns.py:703 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:340 +#: ipalib/plugins/dns.py:710 msgid "SOA minimum" msgstr "Minimalne SOA" -#: ipalib/plugins/dns.py:341 +#: ipalib/plugins/dns.py:711 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:349 +#: ipalib/plugins/dns.py:719 msgid "SOA time to live" msgstr "Czas życia SOA" -#: ipalib/plugins/dns.py:350 +#: ipalib/plugins/dns.py:720 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:354 +#: ipalib/plugins/dns.py:724 msgid "SOA class" msgstr "Klasa SOA" -#: ipalib/plugins/dns.py:355 +#: ipalib/plugins/dns.py:725 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 msgid "BIND update policy" msgstr "Polityka aktualizacji BIND" -#: ipalib/plugins/dns.py:365 +#: ipalib/plugins/dns.py:735 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:366 +#: ipalib/plugins/dns.py:736 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:372 +#: ipalib/plugins/dns.py:742 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:373 +#: ipalib/plugins/dns.py:743 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:388 +#: ipalib/plugins/dns.py:759 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:391 +#: ipalib/plugins/dns.py:762 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:397 +#: ipalib/plugins/dns.py:775 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" -msgstr "Czas życia" - -#: ipalib/plugins/dns.py:538 -msgid "Class" -msgstr "Klasa" - -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "Czas życia" + +#: ipalib/plugins/dns.py:944 +msgid "Class" +msgstr "Klasa" + +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:735 +#: ipalib/plugins/dns.py:972 +#, 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:740 +#: ipalib/plugins/dns.py:977 +#, python-format msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:792 +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1250 +#, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:802 +#: ipalib/plugins/dns.py:1259 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:807 +#: ipalib/plugins/dns.py:1264 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:834 +#: ipalib/plugins/dns.py:1291 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:835 +#: ipalib/plugins/dns.py:1292 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:845 +#: ipalib/plugins/dns.py:1302 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:875 +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "" + +#: ipalib/plugins/dns.py:1331 +#, python-format msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:936 +#: ipalib/plugins/dns.py:1389 +#, python-format msgid "Found '%(value)s'" msgstr "Odnaleziono \"%(value)s\"" -#: ipalib/plugins/dns.py:940 +#: ipalib/plugins/dns.py:1393 msgid "Hostname" msgstr "Nazwa komputera" -#: ipalib/plugins/dns.py:962 +#: ipalib/plugins/dns.py:1415 +#, python-format msgid "Host '%(host)s' not found" msgstr "Nie odnaleziono komputera \"%(host)s\"" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" "Entitlements\n" @@ -2264,183 +2868,128 @@ msgid "" "Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 msgid "UUID" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 msgid "Product" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 msgid "Quantity" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 msgid "Consumed" msgstr "" - -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." -msgstr "" - -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " + +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:394 +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:397 +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:479 +#: ipalib/plugins/entitle.py:472 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:483 +#: ipalib/plugins/entitle.py:476 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" -msgstr "Hasło" - -#: ipalib/plugins/entitle.py:495 +#: ipalib/plugins/entitle.py:488 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:666 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/group.py:26 msgid "" "\n" "Groups of users\n" "\n" "Manage groups of users. By default, new groups are POSIX groups. You\n" "can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" "converted to non-POSIX groups.\n" "\n" "Every group must have a description.\n" @@ -2483,147 +3032,124 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "" + +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/group.py:100 +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 msgid "User Groups" msgstr "Grupy użytkowników" -#: ipalib/plugins/group.py:108 +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" + +#: ipalib/plugins/group.py:109 msgid "Group name" msgstr "Nazwa grupy" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "Opis grupy" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 msgid "GID" msgstr "GID" -#: ipalib/plugins/group.py:120 +#: ipalib/plugins/group.py:121 msgid "GID (use this option to set it manually)" msgstr "GID (ta opcja umożliwia jego ręczne ustawienie)" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:132 +#: ipalib/plugins/group.py:131 +#, python-format msgid "Added group \"%(value)s\"" msgstr "Dodano grupę \"%(value)s\"" -#: ipalib/plugins/group.py:137 +#: ipalib/plugins/group.py:136 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:155 +#, python-format msgid "Deleted group \"%(value)s\"" msgstr "Usunięto grupę \"%(value)s\"" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:189 +#: ipalib/plugins/group.py:185 +#, python-format msgid "Modified group \"%(value)s\"" msgstr "Zmodyfikowano grupę \"%(value)s\"" -#: ipalib/plugins/group.py:194 +#: ipalib/plugins/group.py:190 msgid "change to a POSIX group" msgstr "zmiana na grupę POSIX" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:227 +#, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "Pasuje %(count)d grupa" msgstr[1] "Pasują %(count)d grupy" msgstr[2] "Pasuje %(count)d grup" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 +#: ipalib/plugins/group.py:233 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" #: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:285 +#: ipalib/plugins/group.py:284 +#, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "Odłączono grupę \"%(value)s\" od użytkownika \"%(value)s\"" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 +#: ipalib/plugins/group.py:305 msgid "not allowed to modify user entries" msgstr "modyfikowanie wpisów użytkowników nie jest dozwolone" -#: ipalib/plugins/group.py:312 +#: ipalib/plugins/group.py:311 msgid "not allowed to modify group entries" msgstr "modyfikowanie wpisów grup nie jest dozwolone" -#: ipalib/plugins/group.py:331 +#: ipalib/plugins/group.py:330 msgid "Not a managed group" msgstr "Nie jest zarządzaną grupą" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" "Host-based access control\n" @@ -2645,7 +3171,7 @@ msgid "" "\n" " Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" " anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -2653,7 +3179,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -2662,7 +3188,7 @@ msgid "" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" " ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -2673,264 +3199,212 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "" + +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "" + +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/hbacrule.py:126 +#: ipalib/plugins/hbacrule.py:132 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 msgid "Rule name" msgstr "Nazwa reguły" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "Typ reguły (zezwalanie lub zabranianie)" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "" -#: ipalib/plugins/hbacrule.py:137 +#: ipalib/plugins/hbacrule.py:143 msgid "Rule type" msgstr "Typ reguły" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 msgid "User category" msgstr "Kategoria użytkowników" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 msgid "User category the rule applies to" msgstr "Kategoria użytkowników, do których zastosowywana jest reguła" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 msgid "Host category" msgstr "Kategoria komputerów" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 msgid "Host category the rule applies to" msgstr "Kategoria komputerów, do których zastosowywana jest reguła" -#: ipalib/plugins/hbacrule.py:155 +#: ipalib/plugins/hbacrule.py:165 msgid "Source host category" msgstr "Kategoria komputerów źródłowych" -#: ipalib/plugins/hbacrule.py:156 +#: ipalib/plugins/hbacrule.py:166 msgid "Source host category the rule applies to" msgstr "Kategoria komputerów źródłowych, do których zastosowywana jest reguła" -#: ipalib/plugins/hbacrule.py:161 +#: ipalib/plugins/hbacrule.py:171 msgid "Service category" msgstr "Kategoria usług" -#: ipalib/plugins/hbacrule.py:162 +#: ipalib/plugins/hbacrule.py:172 msgid "Service category the rule applies to" msgstr "Kategoria usług, do których zastosowywana jest reguła" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 msgid "Enabled" msgstr "Włączone" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 msgid "Users" msgstr "Użytkownicy" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "Grupy" - -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 msgid "Hosts" msgstr "Komputery" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 msgid "Host Groups" msgstr "Grupy komputerów" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" -msgstr "Komputery źródłowe" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" +msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 msgid "Services" msgstr "Usługi" -#: ipalib/plugins/hbacrule.py:206 +#: ipalib/plugins/hbacrule.py:216 msgid "Service Groups" msgstr "Grupy usług" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:227 +#, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:234 +#: ipalib/plugins/hbacrule.py:240 +#, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:248 +#, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:273 +#, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:290 +#: ipalib/plugins/hbacrule.py:288 +#, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:319 +#: ipalib/plugins/hbacrule.py:315 +#, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 msgid "Access time" msgstr "Czas dostępu" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacsvc.py:19 +#: ipalib/plugins/hbacsvc.py:27 msgid "" "\n" "HBAC Services\n" @@ -2955,70 +3429,67 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" #: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "Nazwa usługi" +msgid "HBAC Services" +msgstr "" #: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "Nazwa usługi" + +#: ipalib/plugins/hbacsvc.py:80 msgid "HBAC service description" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:85 +#: ipalib/plugins/hbacsvc.py:90 +#, python-format msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:94 +#: ipalib/plugins/hbacsvc.py:98 +#, python-format msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:104 +#: ipalib/plugins/hbacsvc.py:106 +#, python-format msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/hbacsvc.py:114 +#: ipalib/plugins/hbacsvc.py:115 +#, python-format msgid "%(count)d HBAC service matched" msgid_plural "%(count)d HBAC services matched" msgstr[0] "" @@ -3026,13 +3497,10 @@ msgstr[1] "" msgstr[2] "" #: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/hbacsvcgroup.py:24 msgid "" "\n" "HBAC Service Groups\n" @@ -3059,94 +3527,245 @@ msgid "" " ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 +#: ipalib/plugins/hbacsvcgroup.py:71 msgid "Service group name" msgstr "Nazwa grupy usługi" -#: ipalib/plugins/hbacsvcgroup.py:76 +#: ipalib/plugins/hbacsvcgroup.py:78 msgid "HBAC service group description" msgstr "Opis grupy usługi HBAC" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" #: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" #: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbactest.py:27 msgid "" "\n" -" Modify an HBAC service group.\n" -" " +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "Nazwa użytkownika" + +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "" + +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "" + +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/host.py:42 msgid "" "\n" "Hosts/Machines\n" @@ -3202,219 +3821,203 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" - #: ipalib/plugins/host.py:101 msgid "Fully-qualified hostname required" msgstr "Wymagana jest w pełni kwalifikowana nazwa komputera" -#: ipalib/plugins/host.py:129 +#: ipalib/plugins/host.py:142 +#, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 msgid "Keytab" msgstr "Tabela kluczy" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/host.py:231 +#: ipalib/plugins/host.py:249 +msgid "Host" +msgstr "" + +#: ipalib/plugins/host.py:257 msgid "Host name" msgstr "Nazwa komputera" -#: ipalib/plugins/host.py:238 +#: ipalib/plugins/host.py:264 msgid "A description of this host" msgstr "Opis tego komputera" -#: ipalib/plugins/host.py:242 +#: ipalib/plugins/host.py:268 msgid "Locality" msgstr "Lokalizacja" -#: ipalib/plugins/host.py:243 +#: ipalib/plugins/host.py:269 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "Lokalizacja komputera (np. \"Baltimore, MD\")" -#: ipalib/plugins/host.py:248 +#: ipalib/plugins/host.py:274 msgid "Host location (e.g. \"Lab 2\")" msgstr "Położenie komputera (np. \"Laboratorium nr 2\")" -#: ipalib/plugins/host.py:252 +#: ipalib/plugins/host.py:278 msgid "Platform" msgstr "Platforma" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:279 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "Platforma sprzętowa komputera (np. \"Lenovo T61\")" -#: ipalib/plugins/host.py:257 +#: ipalib/plugins/host.py:283 msgid "Operating system" msgstr "System operacyjny" -#: ipalib/plugins/host.py:258 +#: ipalib/plugins/host.py:284 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "System operacyjny komputera i jego wersja (np. \"Fedora 9\")" -#: ipalib/plugins/host.py:262 +#: ipalib/plugins/host.py:288 msgid "User password" msgstr "Hasło użytkownika" -#: ipalib/plugins/host.py:263 +#: ipalib/plugins/host.py:289 msgid "Password used in bulk enrollment" msgstr "Hasło używane w zapisywaniu większej części" -#: ipalib/plugins/host.py:266 +#: ipalib/plugins/host.py:292 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:271 +#: ipalib/plugins/host.py:297 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 msgid "Base-64 encoded server certificate" msgstr "Certyfikat serwera zakodowany za pomocą Base-64" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 msgid "Principal name" msgstr "Nazwa naczelnika" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:369 +#, python-format msgid "Added host \"%(value)s\"" msgstr "Dodano komputer \"%(value)s\"" -#: ipalib/plugins/host.py:316 +#: ipalib/plugins/host.py:374 msgid "force host name even if not in DNS" msgstr "wymuszenie nazwy komputera nawet, jeśli nie w DNS" -#: ipalib/plugins/host.py:319 +#: ipalib/plugins/host.py:377 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:322 +#: ipalib/plugins/host.py:380 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" + +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/host.py:413 +#: ipalib/plugins/host.py:481 +#, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:426 +#: ipalib/plugins/host.py:501 +#, python-format msgid "Deleted host \"%(value)s\"" msgstr "Usunięto komputer \"%(value)s\"" -#: ipalib/plugins/host.py:431 +#: ipalib/plugins/host.py:506 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:542 +#: ipalib/plugins/host.py:615 +#, python-format msgid "Modified host \"%(value)s\"" msgstr "Zmodyfikowano komputer \"%(value)s\"" -#: ipalib/plugins/host.py:549 +#: ipalib/plugins/host.py:622 msgid "Kerberos principal name for this host" msgstr "Nazwa naczelnika Kerberosa dla tego komputera" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." +msgstr "" + +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/host.py:623 +#: ipalib/plugins/host.py:712 +#, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "Pasuje %(count)d komputer" msgstr[1] "Pasuje %(count)d komputery" msgstr[2] "Pasuje %(count)d komputerów" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:688 +#: ipalib/plugins/host.py:789 +#, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/hostgroup.py:25 msgid "" "\n" "Groups of hosts.\n" @@ -3429,3766 +4032,3266 @@ msgid "" "\n" " Add another new host group:\n" " ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "Grupa komputerów" - -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "Nazwa grupy komputerów" - -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" -msgstr "Opis tej grupy komputerów" - -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" -msgstr "Dodano grupę komputerów \"%(value)s\"" - -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Usunięto grupę komputerów \"%(value)s\"" - -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Zmodyfikowano grupę komputerów \"%(value)s\"" - -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "Pasuje %(count)d grupa komputerów" -msgstr[1] "Pasują %(count)d grupy komputerów" -msgstr[2] "Pasuje %(count)d grup komputerów" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" -msgstr "" - -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " -msgstr "" - -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" -msgstr "Nazwa obiektu do wyeksportowania" - -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" -msgstr "" - -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "Słownik obiektów IPA zakodowanych w formacie JSON" - -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "" - -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "Zalogowano jako" - -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "" - -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "" - -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "" - -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "" - -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "" - -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "" - -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" -msgstr "" - -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" -msgstr "" - -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" -msgstr "" - -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" -msgstr "" - -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" -msgstr "" - -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." -msgstr "" - -#: ipalib/plugins/internal.py:124 -msgid "Note" -msgstr "" - -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" -msgstr "" - -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." -msgstr "" - -#: ipalib/plugins/internal.py:128 -msgid "Issued To" -msgstr "" - -#: ipalib/plugins/internal.py:129 -msgid "Common Name" -msgstr "" - -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "" - -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" -msgstr "" - -#: ipalib/plugins/internal.py:133 -msgid "Issued By" -msgstr "" - -#: ipalib/plugins/internal.py:134 -msgid "Validity" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" +msgstr "Grupa komputerów" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" -msgstr "" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" +msgstr "Nazwa grupy komputerów" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" -msgstr "" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" +msgstr "Opis tej grupy komputerów" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" -msgstr "" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Dodano grupę komputerów \"%(value)s\"" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Usunięto grupę komputerów \"%(value)s\"" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" -msgstr "" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Zmodyfikowano grupę komputerów \"%(value)s\"" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" -msgstr "" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "Pasuje %(count)d grupa komputerów" +msgstr[1] "Pasują %(count)d grupy komputerów" +msgstr[2] "Pasuje %(count)d grup komputerów" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" -msgstr "" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" +msgstr "Nazwa obiektu do wyeksportowania" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "Dane" - -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" -msgstr "" +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "Słownik obiektów IPA zakodowanych w formacie JSON" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI
follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" -msgstr "Nazwa komputera" - -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" -msgstr "" +#: ipalib/plugins/internal.py:179 +msgid "Add" +msgstr "Dodaj" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." -msgstr "" +#: ipalib/plugins/internal.py:186 +msgid "Find" +msgstr "Znajdź" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" -msgstr "" +#: ipalib/plugins/internal.py:190 +msgid "Delete" +msgstr "Usuń" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" -msgstr "" +#: ipalib/plugins/internal.py:191 +msgid "Reset" +msgstr "Przywróć" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" -msgstr "" +#: ipalib/plugins/internal.py:195 +msgid "Update" +msgstr "Zaktualizuj" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" +msgstr "Wróć na górę" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" -msgstr "Polityka haseł" - -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" -msgstr "Polecenia" - -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "Adres pocztowy" +#: ipalib/plugins/internal.py:240 +msgid "Search" +msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" -msgstr "Różne informacje" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" +msgstr "Zalogowano jako" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" -msgstr "Dodaj" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" -msgstr "Zapisz się" +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" -msgstr "Znajdź" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" -msgstr "Przywróć" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" -msgstr "Usuń" +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" -msgstr "Zaktualizuj" +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/internal.py:285 +msgid "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/internal.py:287 +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" -msgstr "Szybkie odnośniki" +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "Dane" -#: ipalib/plugins/internal.py:363 -msgid "Select All" -msgstr "Zaznacz wszystko" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" -msgstr "Odznacz wszystko" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" -msgstr "Wróć na górę" +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" -msgstr "Automatyczne montowanie" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" -msgstr "Słownik komunikatów umiędzynaradawiania" +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:344 +msgid "Any Service" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" -msgstr "Polityka zgłoszeń Kerberosa" +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" -msgstr "Nazwa użytkownika" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" -msgstr "Zarządzanie polityką zgłoszeń dla podanego użytkownika" +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" -msgstr "Maksymalny czas życia" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" -msgstr "Minimalny czas życia zgłoszenia (sekundy)" +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" -msgstr "Maksymalne odnowienie" +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" -msgstr "Maksymalny czas, w którym możliwe jest odnowienie (sekundy)" +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "Nazwa komputera" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -"Naczelnik Kerberosa %s już istnieje. Należy użyć polecenia \"ipa user-mod\"," -" aby ustawić go ręcznie." -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -"Dodanie użytkownika do domyślnej grupy nie powiodło się. Należy użyć " -"polecenia \"ipa group-add-member\", aby dodać go ręcznie." -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "Adres URI LDAP" +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" -msgstr "Adres URI LDAP serwera DS, z którego migrować" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" -msgstr "hasło Bind" +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" -msgstr "DN dowiązania" +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" -msgstr "Kontener użytkownika" +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" -msgstr "RDN kontenera dla użytkowników w DS" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" -msgstr "Kontener grupy" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" +msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" -msgstr "RDN kontenera dla grup w DS" +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." -msgstr "Lista migrowanych obiektów, ułożonych w kategorie według typu." +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" msgstr "" -"Lista obiektów, które nie mogły zostać migrowane, ułożonych w kategorie " -"według typu." -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." -msgstr "Fałsz, jeśli wyłączono tryb migracji" +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" -msgstr "lista %s oddzielonych przecinkami do wykluczenia z migracji" +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "Polityka haseł" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" msgstr "" -"Tryb migracji jest wyłączony. Należy użyć polecenia \"ipa config-mod\", aby " -"go włączyć." -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" msgstr "" -"Hasła zostały migrowane w formacie sprzed mieszania.\n" -"Program IPA nie może utworzyć kluczy Kerberosa, chyba\n" -"że zostały podane z hasłami w zwykłym tekście. Wszyscy\n" -"migrowani użytkownicy muszą zalogować się na stronie\n" -"https://twoja.domena/ipa/migration/, zanim będą mogli\n" -"używać swoich kont Kerberosa." -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" -msgstr "Nie odnaleziono kontenera dla %(container)s" - -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" -msgstr "" +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "Grupy" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d zmiennych" +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "Polecenia" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:445 +msgid "Allow" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" -msgstr "Całkowita liczba zmiennych środowiskowych (>= licznik)" +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" -msgstr "Liczba zwróconych zmiennych (<= razem)" +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "Wczytano %(count)d wtyczkę" -msgstr[1] "Wczytano %(count)d wtyczki" -msgstr[2] "Wczytano %(count)d wtyczek" +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" -msgstr "Liczba wczytanych wtyczek" +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:453 +msgid "Access this host" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" -msgstr "Komputer elementu" +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:457 +msgid "As Whom" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" -msgstr "Grupy sieciowe" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" -msgstr "Nazwa grupy sieciowej" +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" -msgstr "Opis grupy sieciowej" +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" -msgstr "Nazwa domeny NIS" +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" -msgstr "Unikalny identyfikator IPA" +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" -#: ipalib/plugins/netgroup.py:140 +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Add a new netgroup.\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "Adres pocztowy" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "Różne informacje" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:19 +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "Szybkie odnośniki" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "Zaznacz wszystko" + +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "" + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "Odznacz wszystko" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "Automatyczne montowanie" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "Słownik komunikatów umiędzynaradawiania" -#: ipalib/plugins/permission.py:405 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Display information about a permission.\n" -" " -msgstr "" - -#: ipalib/plugins/permission.py:428 -msgid "" +"Kerberos ticket policy\n" "\n" -" Add members to a permission.\n" -" " +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "Polityka zgłoszeń Kerberosa" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "Zarządzanie polityką zgłoszeń dla podanego użytkownika" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "Maksymalny czas życia" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "Minimalny czas życia zgłoszenia (sekundy)" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "Maksymalne odnowienie" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "Maksymalny czas, w którym możliwe jest odnowienie (sekundy)" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/migration.py:34 msgid "" "\n" -"Kerberos pkinit options\n" +"Migration to IPA\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -"For more information on anonymous pkinit see:\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" -"\n" -" PKINIT Options\n" -" " +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "Naczelnik Kerberosa %s już istnieje. Należy użyć polecenia \"ipa user-mod\", aby ustawić go ręcznie." + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "Dodanie użytkownika do domyślnej grupy nie powiodło się. Należy użyć polecenia \"ipa group-add-member\", aby dodać go ręcznie." + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "Adres URI LDAP" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "Adres URI LDAP serwera DS, z którego migrować" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "hasło Bind" + +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "DN dowiązania" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "Kontener użytkownika" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "RDN kontenera dla użytkowników w DS" + +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "Kontener grupy" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "RDN kontenera dla grup w DS" + +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/privilege.py:19 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/privilege.py:45 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Privilege object.\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -" Add a new privilege.\n" -" " +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/migration.py:389 msgid "" -"\n" -" Delete a privilege.\n" -" " +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" + +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Modify a privilege.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/privilege.py:115 +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -" Search for privileges.\n" -" " +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" -#: ipalib/plugins/privilege.py:127 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Display information about a privilege.\n" -" " +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/privilege.py:135 +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "Lista migrowanych obiektów, ułożonych w kategorie według typu." + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "Lista obiektów, które nie mogły zostać migrowane, ułożonych w kategorie według typu." + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "Fałsz, jeśli wyłączono tryb migracji" + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "lista %s oddzielonych przecinkami do wykluczenia z migracji" + +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Add members to a privilege\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/privilege.py:144 +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "Tryb migracji jest wyłączony. Należy użyć polecenia \"ipa config-mod\", aby go włączyć." + +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Remove members from a privilege\n" -" " -msgstr "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "Hasła zostały migrowane w formacie sprzed mieszania.\nProgram IPA nie może utworzyć kluczy Kerberosa, chyba\nże zostały podane z hasłami w zwykłym tekście. Wszyscy\nmigrowani użytkownicy muszą zalogować się na stronie\nhttps://twoja.domena/ipa/migration/, zanim będą mogli\nużywać swoich kont Kerberosa." -#: ipalib/plugins/privilege.py:153 +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "Nie odnaleziono kontenera dla %(container)s" + +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add permissions to a privilege.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/privilege.py:177 +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d zmiennych" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "Całkowita liczba zmiennych środowiskowych (>= licznik)" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "Liczba zwróconych zmiennych (<= razem)" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "Wczytano %(count)d wtyczkę" +msgstr[1] "Wczytano %(count)d wtyczki" +msgstr[2] "Wczytano %(count)d wtyczek" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" +msgstr "Liczba wczytanych wtyczek" + +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"Netgroups\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:72 -msgid "" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Class of Service object used for linking policies with groups\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" -msgstr "" -"priorytet musi być unikalną wartością (%(prio)d jest już używane przez " -"%(gname)s)" - -#: ipalib/plugins/pwpolicy.py:172 -msgid "" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" Password Policy object\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" -msgstr "" +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" +msgstr "Komputer elementu" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" -msgstr "" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "Grupy sieciowe" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" -msgstr "Grupa" - -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" -msgstr "Zarządzanie polityką haseł dla podanej grupy" - -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" -msgstr "Maksymalny czas życia (w dniach)" - -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" -msgstr "Maksymalny czas życia hasła (w dniach)" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "Nazwa grupy sieciowej" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" -msgstr "Minimalny czas życia (w godzinach)" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "Opis grupy sieciowej" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" -msgstr "Minimalny czas życia hasła (w godzinach)" +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "Nazwa domeny NIS" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" -msgstr "Rozmiar historii" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" +msgstr "Unikalny identyfikator IPA" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" -msgstr "Rozmiar historii haseł" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." +msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" -msgstr "Klasy znaków" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" -msgstr "Minimalna liczba klas znaków" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" -msgstr "Minimalna długość" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" -msgstr "Minimalna długość hasła" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" -msgstr "Priorytet" +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" -msgstr "Priorytet polityki (wyższy numer równa się niższemu priorytetowi" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." -msgstr "Maksymalny czas życia hasła musi być wyższy niż minimalny." +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "nie można ustawiać priorytetu dla globalnej polityki" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" -#: ipalib/plugins/pwpolicy.py:423 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Display information about password policy.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" -msgstr "Użytkownik" - -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" -msgstr "Wyświetlanie aktywnej polityki dla podanego użytkownika" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Roles\n" +"Permissions\n" "\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"Privileges are assigned to Roles.\n" +"A permission may not contain other permissions.\n" "\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Roles can not contain other roles.\n" +"A permission is made up of a number of different parts:\n" "\n" -"EXAMPLES:\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" -msgstr "Opis tej grupy rol" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "" -#: ipalib/plugins/role.py:101 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new role.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Kerberos pkinit options\n" "\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"For more information on anonymous pkinit see:\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/selfservice.py:56 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"Privileges\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" +"\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" +"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"Password policy\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "priorytet musi być unikalną wartością (%(prio)d jest już używane przez %(gname)s)" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" -msgstr "Naczelnik usługi" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" +msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" -msgstr "Dodano usługę \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" +msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" -msgstr "wymuszenie nazwy naczelnika nawet, jeśli nie w DNS" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" +msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" -msgstr "Usunięto usługę \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" +msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" -msgstr "Zmodyfikowano usługę \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" +msgstr "Grupa" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " -msgstr "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "Zarządzanie polityką haseł dla podanej grupy" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "Pasuje %(count)d usługa" -msgstr[1] "Pasuje %(count)d usługi" -msgstr[2] "Pasuje %(count)d usług" +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "Maksymalny czas życia (w dniach)" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" +msgstr "Maksymalny czas życia hasła (w dniach)" + +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" +msgstr "Minimalny czas życia (w godzinach)" + +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" +msgstr "Minimalny czas życia hasła (w godzinach)" + +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" +msgstr "Rozmiar historii" + +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" +msgstr "Rozmiar historii haseł" + +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "Klasy znaków" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" +msgstr "Minimalna liczba klas znaków" + +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" +msgstr "Minimalna długość" + +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "Minimalna długość hasła" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "Priorytet" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "Priorytet polityki (wyższy numer równa się niższemu priorytetowi" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "Maksymalny czas życia hasła musi być wyższy niż minimalny." + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "nie można ustawiać priorytetu dla globalnej polityki" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "Użytkownik" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "Wyświetlanie aktywnej polityki dla podanego użytkownika" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo Commands\n" +"Roles\n" "\n" -"Commands used as building blocks for sudo\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -msgstr "" - -#: ipalib/plugins/sudocmd.py:46 -msgid "" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Sudo Command object.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" -msgstr "" - -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" -msgstr "Polecenie sudo" - -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" -msgstr "Opis tego polecenia" - -#: ipalib/plugins/sudocmd.py:98 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Create new sudo command.\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" -msgstr "Dodano polecenie sudo \"%(value)s\"" - -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" -msgstr "Usunięto polecenie sudo \"%(value)s\"" - -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" -msgstr "Zmodyfikowano polecenie sudo \"%(value)s\"" +#: ipalib/plugins/role.py:82 +msgid "Role" +msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "Pasuje %(count)d polecenie sudo" -msgstr[1] "Pasuje %(count)d polecenia sudo" -msgstr[2] "Pasuje %(count)d poleceń sudo" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "Opis tej grupy rol" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" -msgstr "Dodano grupę polecenia sudo \"%(value)s\"" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" -msgstr "Usunięto grupę polecenia sudo \"%(value)s\"" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" -msgstr "Zmodyfikowano grupę polecenia sudo \"%(value)s\"" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "Pasuje %(count)d grupa polecenia sudo" -msgstr[1] "Pasują %(count)d grupy polecenia sudo" -msgstr[2] "Pasuje %(count)d grup polecenia sudo" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Self-service Permissions\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:44 -msgid "" -"\n" -" Sudo Rule management\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" -msgstr "Polecenia zezwolone sudo" +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." +msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" -msgstr "Polecenia zabronione sudo" +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/service.py:35 +msgid "" +"\n" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "Naczelnik usługi" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Dodano usługę \"%(value)s\"" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "wymuszenie nazwy naczelnika nawet, jeśli nie w DNS" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "Dodano regułę sudo \"%(value)s\"" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Usunięto usługę \"%(value)s\"" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:197 -msgid "" -"\n" -" Modify Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Zmodyfikowano usługę \"%(value)s\"" + +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:205 -msgid "" -"\n" -" Search for Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "Pasuje %(count)d usługa" +msgstr[1] "Pasuje %(count)d usługi" +msgstr[2] "Pasuje %(count)d usług" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:213 -msgid "" -"\n" -" Display Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:221 -msgid "" -"\n" -" Enable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" +msgstr "Polecenie sudo" + +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" +msgstr "Opis tego polecenia" + +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." +msgstr "" + +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +"Groups of Sudo Commands\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Manage groups of Sudo Commands.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" "\n" -" User object.\n" -" " -msgstr "" - -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "Login użytkownika" - -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "Imię" - -#: ipalib/plugins/user.py:127 -msgid "Last name" -msgstr "Nazwisko" - -#: ipalib/plugins/user.py:130 -msgid "Full name" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" -msgstr "Pole GECOS" - -#: ipalib/plugins/user.py:156 -msgid "Login shell" -msgstr "Powłoka logowania" - -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" -msgstr "Naczelnik Kerberosa" - -#: ipalib/plugins/user.py:168 -msgid "Email address" -msgstr "Adres e-mail" - -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" -msgstr "UID" - -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -"Numer identyfikacyjny użytkownika (system go przydzieli, jeśli nie zostanie " -"podany)" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" -msgstr "Adres zamieszkania" - -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" -msgstr "Numer telefonu" - -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" -msgstr "Numer telefonu komórkowego" - -#: ipalib/plugins/user.py:214 -msgid "Pager Number" -msgstr "Numer pagera" - -#: ipalib/plugins/user.py:218 -msgid "Fax Number" -msgstr "Numer faksu" - -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" -msgstr "" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "Dodano użytkownika \"%(value)s\"" - -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "Usunięto użytkownika \"%(value)s\"" - -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "Zmodyfikowano użytkownika \"%(value)s\"" - -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" -msgstr "Własny" - -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" -msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" +msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "Pasuje %(count)d użytkownik" -msgstr[1] "Pasuje %(count)d użytkowników" -msgstr[2] "Pasuje %(count)d użytkowników" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" +msgstr "" + +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" +msgstr "Polecenia zezwolone sudo" + +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" +msgstr "Polecenia zabronione sudo" + +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" -msgstr "Wyłączono konto użytkownika \"%(value)s\"" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" +msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" -msgstr "Włączono konto użytkownika \"%(value)s\"" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" +msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: " +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "Hasła się nie zgadzają." +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "Anulowano." +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -"klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na " -"%(server)r" -#: ipalib/errors.py:318 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "nieznany błąd %(code)d z %(server)s: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "wystąpił wewnętrzny błąd" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." +msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "wystąpił wewnętrzny błąd w serwerze na %(server)r" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "nieznane polecenie %(name)r" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "error on server %(server)r: %(error)s" -msgstr "błąd w serwerze %(server)r: %(error)s" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "nie można połączyć się z %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Błąd Kerberosa: %(major)s/%(minor)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" -msgstr "nie otrzymano danych uwierzytelniających Kerberosa" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." +msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Service %(service)r not found in Kerberos database" -msgstr "Nie odnaleziono usługi %(service)r w bazie danych Kerberosa" +msgid "Disabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" -msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "Zgłoszenie wygasło" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -"Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" -msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" -msgstr "Nie można rozwiązać KDC dla żądanego obszaru" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Niewystarczający dostęp: %(info)s" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "polecenie %(name)r nie przyjmuje parametrów" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:661 -#, 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] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametr" -msgstr[1] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametry" -msgstr[2] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametrów" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" -msgstr "pokrywanie parametrów i opcji: %(names)r" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "%(name)r jest wymagane" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "nieprawidłowe %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "api has no such namespace: %(name)r" -msgstr "API nie posiada takiej przestrzeni nazw: %(name)r" - -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "Hasła się nie zgadzają" - -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "Polecenie nie jest zaimplementowane" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "%(reason)s" -msgstr "%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "Ten wpis już istnieje" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" +msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" -msgstr "Należy zapisać się do komputera, aby utworzyć jego usługę" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" +msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -"Naczelnik usługi nie jest w formacie: usługa/w pełni kwalifikowana nazwa " -"komputera: %(reason)s" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" -msgstr "Obszar naczelnika nie zgadza się z obszarem dla tego serwera IPA" +#: ipalib/plugins/user.py:141 +msgid "users" +msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "Te polecenie wymaga dostępu roota" +#: ipalib/plugins/user.py:177 +msgid "User login" +msgstr "Login użytkownika" -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "To jest już grupa POSIX" +#: ipalib/plugins/user.py:184 +msgid "First name" +msgstr "Imię" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" -msgstr "Naczelnik nie jest w formacie użytkownik@OBSZAR: %(principal)r" +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "Nazwisko" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "Grupa nie może być własnym elementem" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" +msgstr "Pole GECOS" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" -msgstr "" +#: ipalib/plugins/user.py:218 +msgid "Login shell" +msgstr "Powłoka logowania" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Dekodowanie base64 nie powiodło się: %(reason)s" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" +msgstr "Naczelnik Kerberosa" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" -msgstr "Nie można dodać grupy jako elementu jej samej" +#: ipalib/plugins/user.py:231 +msgid "Email address" +msgstr "Adres e-mail" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" -msgstr "Nie można usunąć domyślnej grupy użytkowników" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "" + +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "UID" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" -msgstr "Komputer nie posiada pasującego wpisu DNS A" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" +msgstr "Numer identyfikacyjny użytkownika (system go przydzieli, jeśli nie zostanie podany)" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -"Usuwanie zarządzanej grupy nie jest dozwolone. Musi zostać najpierw " -"odłączona." -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." -msgstr "" +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "Adres zamieszkania" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" -msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" +msgstr "Numer telefonu" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "zmiana koliduje z inną zmianą" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "Numer telefonu komórkowego" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" -msgstr "żadne modyfikacje nie zostaną wykonane" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" +msgstr "Numer pagera" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" +msgstr "Numer faksu" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" -msgstr "przekroczono ograniczenia dla tego zapytania" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" +msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1366 +#: ipalib/plugins/user.py:340 #, python-format -msgid "Bad search filter %(info)s" +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Nie można ukończyć działania na certyfikacie: %(error)s" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." +msgstr "" -#: ipalib/errors.py:1407 +#: ipalib/plugins/user.py:361 #, python-format -msgid "Certificate format error: %(error)s" -msgstr "Błąd formatu certyfikatu: %(error)s" +msgid "Added user \"%(value)s\"" +msgstr "Dodano użytkownika \"%(value)s\"" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -"Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Usunięto użytkownika \"%(value)s\"" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" -msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie" - -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" -msgstr "Słownik reprezentujący wpis LDAP" - -#: ipalib/output.py:100 -msgid "A list of LDAP entries" -msgstr "Lista wpisów LDAP" - -#: ipalib/output.py:111 -msgid "All commands should at least have a result" -msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik" - -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "niepoprawny typ" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Zmodyfikowano użytkownika \"%(value)s\"" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "Dozwolona jest tylko jedna wartość" +#: ipalib/plugins/user.py:510 +msgid "Search for users." +msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "musi być prawdą lub fałszem" +#: ipalib/plugins/user.py:517 +msgid "Self" +msgstr "Własny" -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "musi być liczba całkowitą" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" +msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "musi wynosić co najmniej %(minvalue)d" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "Pasuje %(count)d użytkownik" +msgstr[1] "Pasuje %(count)d użytkowników" +msgstr[2] "Pasuje %(count)d użytkowników" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "może wynosić co najwyżej %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "musi być liczbą dziesiętną" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" -msgstr "musi wynosić co najmniej %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" +msgstr "Wyłączono konto użytkownika \"%(value)s\"" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" -msgstr "może wynosić co najwyżej %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." +msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "musi pasować do wzorca \"%(pattern)s\"" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "musi być danymi binarnymi" +msgid "Enabled user account \"%(value)s\"" +msgstr "Włączono konto użytkownika \"%(value)s\"" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "musi wynosić co najmniej %(minlength)d bajtów" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." +msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "może wynosić co najwyżej %(maxlength)d bajtów" +msgid "Unlocked account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" -msgstr "musi wynosić dokładnie %(length)d bajtów" +msgid "Permission denied: %(file)s" +msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "musi być tekstem w unikodzie" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "musi wynosić co najmniej %(minlength)d znaków" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "może wynosić co najwyżej %(maxlength)d znaków" +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "musi wynosić dokładnie %(length)d znaków" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" -msgstr "musi być jednym z %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "Nie można komunikować się z CMS (%s)" @@ -7209,14 +7312,17 @@ msgstr "Platforma sprzętowa komputera (np. Lenovo T61)" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "System operacyjny komputera i jego wersja (np. Fedora 9)" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form " "\"%(subject_base)s\"" -msgstr "" -"Temat żądania \"%(request_subject)s\" nie pasuje do formatu " -"\"%(subject_base)s\"" +msgstr "Temat żądania \"%(request_subject)s\" nie pasuje do formatu \"%(subject_base)s\"" #: ipaserver/plugins/selfsign.py:104 #, python-format @@ -7235,291 +7341,297 @@ msgstr "nie można uzyskać następnego numeru szeregowego" msgid "certutil failure" msgstr "narzędzie certyfikatów nie powiodło się" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "nie można otworzyć pliku konfiguracji %s\n" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "nie można wykonać stat() na pliku konfiguracji %s\n" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "błąd odczytu\n" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" -msgstr "Zainicjowanie kontekstu Kerberosa nie powiodło się\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" +msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "Brak typów szyfrowania preferowanych przez system?\n" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "Brak pamięci?\n" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "Brak pamięci\n" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "Ostrzeżenie o nierozpoznanym typie szyfrowania: [%s]\n" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "Ostrzeżenie o nierozpoznanym typie salt: [%s]\n" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "Porównanie typów szyfrowania nie powiodło się.\n" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "Utworzenie losowego klucza nie powiodło się.\n" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "Utworzenie klucza nie powiodło się.\n" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "Brak pamięci.\n" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "Błędny lub nieobsługiwany typ salt (%d).\n" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "Żadne klucze nie zostały zaakceptowane przez KDC\n" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "Brak pamięci \n" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "Brak pamięci.\n" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "Utworzenie kontroli nie powiodło się.\n" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "Nie można zainicjować biblioteki LDAP.\n" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "Nie można ustawić opcji LDAP.\n" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "Proste dowiązanie nie powiodło się\n" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "Dowiązanie SASL nie powiodło się.\n" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "Działanie nie powiodło się. %s\n" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "Brak kontroli odpowiedzi.\n" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "ber_init() nie powiodło się, nieprawidłowa kontrola?\n" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "ber_scanf() nie powiodło się, nieprawidłowa kontrola?\n" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "Nowe hasło naczelnika" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "Sprawdzenie hasła naczelnika" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "Wyświetla tak mało, jak to możliwe" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "Wyświetla tylko błędy" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "Kontaktuje się z konkretnym serwerem KDC" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "Nazwa serwera" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" -"Naczelnik, dla którego uzyskać tablicę kluczy (np.: " -"ftp/ftp.przykład.pl@PRZYKŁAD.PL)" +msgstr "Naczelnik, dla którego uzyskać tablicę kluczy (np.: ftp/ftp.przykład.pl@PRZYKŁAD.PL)" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "Nazwa naczelnika usługi Kerberos" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "Plik, w którym przechowywać informację o tablicy kluczy" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "Nazwa pliku tablicy kluczy" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "Typy szyfrowania do zażądania" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "Lista typów szyfrowania oddzielonych przecinkami" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "Wyświetla listę dozwolonych typów szyfrowania i kończy działanie" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "Dozwolone typy szyfrowania" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "Pyta o nielosowe hasło do użycia z naczelnikiem" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "DN LDAP" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "DN do dowiązania, jeśli nie jest używany Kerberos" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "Hasło LDAP" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "hasło do użycia, jeśli nie jest używany Kerberos" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "Zainicjowanie kontekstu Kerberosa nie powiodło się\n" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "Obsługiwane typy szyfrowania:\n" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "Ostrzeżenie: przekonwertowanie typu (#%d) nie powiodło się\n" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "Hasło dowiązania jest wymagane podczas używania dowiązania DN.\n" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" -msgstr "" -"Ostrzeżenie: typy salt nie są uwzględniane z losowymi hasłami (proszę " -"zobaczyć opcję -P)\n" +msgstr "Ostrzeżenie: typy salt nie są uwzględniane z losowymi hasłami (proszę zobaczyć opcję -P)\n" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "Nieprawidłowa nazwa naczelnika usługi\n" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "" -"Nie odnaleziono pamięci podręcznej danych uwierzytelniających. Istnieje " -"zgłoszenie Kerberosa?\n" +msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających. Istnieje zgłoszenie Kerberosa?\n" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "" -"Nie odnaleziono naczelnika użytkownika Kerberosa. Istnieje prawidłowa pamięć" -" podręczna danych uwierzytelniających?\n" +msgstr "Nie odnaleziono naczelnika użytkownika Kerberosa. Istnieje prawidłowa pamięć podręczna danych uwierzytelniających?\n" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "Otwarcie tablicy kluczy nie powiodło się\n" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "Utworzenie materiału klucza nie powiodło się\n" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "Dodanie klucza do tablicy kluczy nie powiodło się\n" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "Zamknięcie tablicy kluczy nie powiodło się\n" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "Pomyślnie pobrano tablicę kluczy i przechowano ją w: %s\n" @@ -7539,257 +7651,236 @@ msgstr "Brak uprawnień do zapisu pliku tablicy kluczy \"%s\"\n" msgid "access() on %s failed: errno = %d\n" msgstr "access() w %s nie powiodło się: errno = %d\n" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "Nie można włączyć SSL w LDAP\n" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "Nie można ustawić wersji LDAP\n" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "Dowiązanie nie powiodło się: %s\n" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "Wyszukiwanie %s w rootdse nie powiodło się z błędem %d" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "Brak wartości dla %s" +#: ipa-client/ipa-join.c:316 +#, c-format +msgid "Search for IPA namingContext failed with error %d\n" +msgstr "" + #: ipa-client/ipa-join.c:322 #, c-format +msgid "IPA namingContext not found\n" +msgstr "" + +#: ipa-client/ipa-join.c:368 +#, c-format msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "Wyszukiwanie ipaCertificateSubjectBase nie powiodło się z błędem %d" -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:439 #, c-format msgid "Unable to determine root DN of %s\n" msgstr "Nie można ustalić głównego DN %s\n" -#: ipa-client/ipa-join.c:399 -#, c-format -msgid "Unable to determine certificate subject of %s\n" -msgstr "Nie można ustalić tematu certyfikatu %s\n" - -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "Unable to make an LDAP connection to %s\n" -msgstr "Nie można utworzyć połączenia LDAP do %s\n" - -#: ipa-client/ipa-join.c:432 -#, c-format -msgid "Searching with %s in %s\n" -msgstr "Wyszukiwanie %s w %s\n" - -#: ipa-client/ipa-join.c:438 -#, c-format -msgid "ldap_search_ext_s: %s\n" -msgstr "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" +msgstr "Niepoprawne hasło.\n" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" -msgstr "Nie można odnaleźć komputera \"%s\"\n" +msgid "Unable to determine certificate subject of %s\n" +msgstr "Nie można ustalić tematu certyfikatu %s\n" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" -msgstr "Nie można uzyskać binddn dla komputera \"%s\"\n" +msgid "Enrollment failed. %s\n" +msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" -msgstr "Komputer posiada już naczelnika, próba dowiązania mimo to\n" +msgid "principal not found in XML-RPC response\n" +msgstr "nie odnaleziono naczelnika w odpowiedzi XML-RPC\n" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "Komputer jest już dołączony.\n" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "Niepoprawne hasło.\n" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "nie odnaleziono naczelnika we wpisie komputera\n" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "nie odnaleziono naczelnika w odpowiedzi XML-RPC\n" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "Nie można ustalić serwera IPA z %s\n" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "Nazwa komputera musi być w pełni kwalifikowana: %s\n" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" -msgstr "" -"Nie można dołączyć do komputera: zainicjowanie kontekstu Kerberosa nie " -"powiodło się\n" +msgstr "Nie można dołączyć do komputera: zainicjowanie kontekstu Kerberosa nie powiodło się\n" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "Błąd podczas rozwiązywania tablicy kluczy: %s.\n" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "Błąd podczas przetwarzania \"%s\": %s.\n" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "Błąd podczas uzyskiwania początkowych danych uwierzytelniających: %s.\n" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" -msgstr "" -"Nie można utworzyć pamięci podręcznej danych uwierzytelniających Kerberosa\n" +msgstr "Nie można utworzyć pamięci podręcznej danych uwierzytelniających Kerberosa\n" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" -msgstr "" -"Błąd podczas przechowywania danych uwierzytelniających w pamięci podręcznej:" -" %s.\n" +msgstr "Błąd podczas przechowywania danych uwierzytelniających w pamięci podręcznej: %s.\n" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "Pomyślnie wypisano.\n" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "Wypisanie nie powiodło się.\n" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "nie odnaleziono wyniku w odpowiedzi XML-RPC\n" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" -msgstr "" -"Nie można dołączyć do komputera: nie odnaleziono pamięci podręcznej danych " -"uwierzytelniających Kerberosa\n" +msgstr "Nie można dołączyć do komputera: nie odnaleziono pamięci podręcznej danych uwierzytelniających Kerberosa\n" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" -msgstr "" -"Nie można dołączyć do komputera: nie odnaleziono naczelnika użytkownika " -"Kerberosa oraz nie podano hasła komputera.\n" +msgstr "Nie można dołączyć do komputera: nie odnaleziono naczelnika użytkownika Kerberosa oraz nie podano hasła komputera.\n" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "fork() nie powiodło się\n" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "nie odnaleziono ipa-getkeytab\n" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "ipa-getkeytab posiada błędne uprawnienia?\n" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "wykonanie ipa-getkeytab nie powiodło się, errno %d\n" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "potomek został zakończony z %d\n" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "Podstawa tematu certyfikatu: %s\n" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "Wypisuje ten komputer z serwera IPA" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "Serwer IPA do użycia" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7880,5 +7971,3 @@ msgstr "Zamknięcie tablicy kluczy nie powiodło się\n" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "krb5_kt_close %d: %s\n" - - diff --git a/install/po/pt.po b/install/po/pt.po index 64defce94..539479a9c 100644 --- a/install/po/pt.po +++ b/install/po/pt.po @@ -2,12 +2,13 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:50+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" @@ -16,4318 +17,4130 @@ msgstr "" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/pt_BR.po b/install/po/pt_BR.po index bea77bbd4..2725a24d1 100644 --- a/install/po/pt_BR.po +++ b/install/po/pt_BR.po @@ -2,4332 +2,4145 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:48+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (Brazilian) \n" +"Language-Team: Portuguese (Brazil) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI
= count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/ru.po b/install/po/ru.po index 2ec7c7626..a3321258f 100644 --- a/install/po/ru.po +++ b/install/po/ru.po @@ -2,6 +2,7 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Alexander Ivanov , 2011. # Andrew Martynov , 2010. # jdennis , 2011. @@ -9,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-10 21:41+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" @@ -19,148 +20,499 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: ipalib/plugins/__init__.py:20 +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Повторно введите %(label)s для проверки: " + +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Пароли не совпадают!" + +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Отменено." + +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" +msgstr "" + +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." +msgstr "" + +#: ipalib/cli.py:772 +msgid "Built-in commands:" +msgstr "" + +#: ipalib/cli.py:774 +msgid "Help subtopics:" +msgstr "" + +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "" + +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "" + +#: ipalib/cli.py:816 +msgid "Topic commands:" +msgstr "" + +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "" + +#: ipalib/cli.py:1130 +msgid "No file to read" +msgstr "" + +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "%(cver)s клиент не совместим с %(sver)s сервером на %(server)r" + +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "получена неизвестная ошибка %(code)d от %(server)s: %(error)s" + +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "произошла внутренняя ошибка" + +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "произошла внутренняя ошибка на сервере %(server)r" + +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "неизвестная команда %(name)r" + +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "ошибка на сервере %(server)r: %(error)s" + +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "невозможно подключиться к %(uri)r: %(error)s" + +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Неверный JSON-RPC запрос: %(error)s" + +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "" + +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Ошибка Kerberos: %(major)s/%(minor)s" + +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "не получены регистрационные данные Kerberos" + +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "Служба %(service)r не найдена в базе данных Kerberos" + +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "Кэш регистрационных данных не найден" + +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "Срок действия билета истек" + +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "Права доступа на кэш регистрационных данных неверны" + +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "Ошибочный формат в кэше регистрационных данных " + +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "Не могу определить KDC для запрошенной области (realm)" + +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Недостаточно прав для доступа: %(info)s" + +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "команде %(name)r не требуются параметры" + +#: ipalib/errors.py:664 +#, 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] "команда %(name)r принимает не более %(count)d аргумента" +msgstr[1] "команда %(name)r принимает не более %(count)d аргументов" +msgstr[2] "команда %(name)r принимает не более %(count)d аргументов" + +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "наложение аргументов и параметров: %(names)r" + +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "требуется %(name)r" + +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "неверный(ое) %(name)r: %(error)s" + +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "api не предоставляет такого пространства имен (namespace): %(name)r" + +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Пароли не совпадают" + +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "Команда пока не реализована" + +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "" + +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Такая запись уже существует" + +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "Для того чтобы создать службу для узла, вам необходимо зарегистрировать этот узел" + +#: ipalib/errors.py:861 +#, python-format msgid "" -"\n" -"Sub-package containing all core plugins.\n" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "Учетная запись службы не представлена в форме: служба/полностью-определенное-имя: %(reason)s" + +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "Область (realm) для учетной записи не совпадает с областью IPA сервера" + +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "Этой команде требуются права администратора" + +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "Уже является posix группой" + +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "Учетная запись задана в форме отличной от user@REALM: %(principal)r" + +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "" + +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "" + +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "" + +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "" + +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "Группа не может входить в состав самой себя" + +#: ipalib/errors.py:1021 +msgid "This entry is already a member" +msgstr "" + +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Декодирование Base64 прошло с ошибкой: %(reason)s" + +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "Группа не может быть добавлена сама в себя" + +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "Группа по умолчанию для пользователя не может быть удалена" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "Хост не имеет соответствующей A записи в DNS" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "Удаление управляемой группы не разрешено. Сначала ее необходимо отключить." + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/plugins/aci.py:20 +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "" + +#: ipalib/errors.py:1230 +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" + +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "нет команды или раздела справки для %(topic)r" + +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "изменение противоречит другому сделанному изменению" + +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "изменения не внесены" + +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "" + +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "для этого запроса превышены ограничения" + +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "" + +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "" + +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "" + +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "" + +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Операция с сертификатом не может быть завершена: %(error)s" + +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "" + +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "" + +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "" + +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "Результаты усечены. Попробуйте задать более точные условия поиска" + +#: ipalib/frontend.py:821 +msgid "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "Список значений ACI" +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "Список записей LDAP" + +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "неверный тип" + +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "Допускается только одно значение" + +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "должно быть либо True, либо False" + +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "должно быть целое" + +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "должно быть не менее %(minvalue)d" + +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "может быть не более %(maxvalue)d" + +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "должно быть десятичным числом" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "должно быть не менее %(minvalue)f" + +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "может быть не более %(maxvalue)f" + +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "должно совпадать с шаблоном \"%(pattern)s\"" + +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "должно являться двоичными данными" + +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "должно содержать не менее %(minlength)d байт" + +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "может содержать не более %(maxlength)d байт" + +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "должно содержать точно %(length)d байт" + +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "должно являться текстом Unicode" + +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "" + +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "должно быть не короче %(minlength)d символов" + +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "может быть не длиннее %(maxlength)d символов" + +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "должно быть точно %(length)d символов длинной" + +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "должно являться одним из %(values)r" + +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" +msgstr "Список значений ACI" + #: ipalib/plugins/aci.py:215 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "type, filter, subtree и targetgroup являются взаимоисключающими" @@ -173,9 +525,7 @@ msgstr "" msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" -msgstr "" -"требуется как минимум одно из: type, filter, subtree, targetgroup, attrs или" -" memberof" +msgstr "требуется как минимум одно из: type, filter, subtree, targetgroup, attrs или memberof" #: ipalib/plugins/aci.py:224 msgid "filter and memberof are mutually exclusive" @@ -190,6 +540,7 @@ msgid "One of group, permission or self is required" msgstr "" #: ipalib/plugins/aci.py:251 +#, python-format msgid "Group '%s' does not exist" msgstr "Группа '%s' не существует" @@ -198,20 +549,12 @@ msgid "empty filter" msgstr "" #: ipalib/plugins/aci.py:294 +#, python-format msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:379 +#, python-format msgid "ACI with name \"%s\" not found" msgstr "ACI с именем \"%s\" не найден" @@ -225,13 +568,6 @@ msgid "" "none)" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:412 msgid "ACIs" msgstr "" @@ -240,223 +576,441 @@ msgstr "" msgid "ACI name" msgstr "" -#: ipalib/plugins/aci.py:422 +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 msgid "Permission" msgstr "" -#: ipalib/plugins/aci.py:423 +#: ipalib/plugins/aci.py:424 msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 msgid "User group" msgstr "Группа пользователей" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 msgid "Permissions" msgstr "Разрешения" -#: ipalib/plugins/aci.py:433 +#: ipalib/plugins/aci.py:436 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 msgid "Attributes" msgstr "Аттрибуты" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 msgid "Comma-separated list of attributes" msgstr "Разделенный запятой список аттрибутов" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 msgid "Type" msgstr "Тип" -#: ipalib/plugins/aci.py:445 +#: ipalib/plugins/aci.py:452 msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/aci.py:450 +#: ipalib/plugins/aci.py:458 msgid "Member of" msgstr "Член" -#: ipalib/plugins/aci.py:451 +#: ipalib/plugins/aci.py:459 msgid "Member of a group" msgstr "Член группы" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 msgid "Filter" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 msgid "Subtree" msgstr "" -#: ipalib/plugins/aci.py:461 +#: ipalib/plugins/aci.py:471 msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 msgid "Target group" msgstr "Целевая группа" -#: ipalib/plugins/aci.py:466 +#: ipalib/plugins/aci.py:477 msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:470 +#: ipalib/plugins/aci.py:482 msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:471 +#: ipalib/plugins/aci.py:483 msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:482 +#: ipalib/plugins/aci.py:495 +#, python-format msgid "Created ACI \"%(value)s\"" msgstr "Создан ACI \"%(value)s\"" -#: ipalib/plugins/aci.py:487 +#: ipalib/plugins/aci.py:500 msgid "Test the ACI syntax but don't write anything" msgstr "" -#: ipalib/plugins/aci.py:493 +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Удален ACI \"%(value)s\"" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Изменен ACI \"%(value)s\"" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "совпадает %(count)d ACI" +msgstr[1] "совпадают %(count)d ACI" +msgstr[2] "совпадают %(count)d ACI" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" Execute the aci-create operation.\n" +"Auto Membership Rule.\n" "\n" -" Returns the entry as it will be created in LDAP.\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" +"a group or hostgroup based upon attribute information.\n" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" + +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "" + +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "" + +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "" + +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "" + +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "" + +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/aci.py:533 +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "Описание" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "" + +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "" + +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Delete ACI.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "Удален ACI \"%(value)s\"" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "" -#: ipalib/plugins/aci.py:543 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Execute the aci-delete operation.\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "" + +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 +msgid "" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" +" Override this so we can add completed and failed to the return result.\n" " " msgstr "" -#: ipalib/plugins/aci.py:576 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Modify ACI.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "Изменен ACI \"%(value)s\"" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" -#: ipalib/plugins/aci.py:633 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" +" Override this so we can set completed and failed.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:434 +msgid "" "\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" +" Modify an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:450 +msgid "" "\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" +" Delete an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:466 +msgid "" "\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" +" Search for automember rules.\n" " " msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "совпадает %(count)d ACI" -msgstr[1] "совпадают %(count)d ACI" -msgstr[2] "совпадают %(count)d ACI" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/aci.py:823 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Display a single ACI given an ACI name.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +" Set default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Rename an ACI.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 +msgid "" +"\n" +" Display information about the default automember groups.\n" +" " msgstr "" -#: ipalib/plugins/automount.py:20 +#: ipalib/plugins/automount.py:29 msgid "" "\n" "Automount\n" @@ -544,1688 +1098,1741 @@ msgid "" " ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "" + +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/automount.py:190 +#: ipalib/plugins/automount.py:195 msgid "Automount Locations" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "" + +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 msgid "Location" msgstr "Расположение" -#: ipalib/plugins/automount.py:197 +#: ipalib/plugins/automount.py:202 msgid "Automount location name." msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/automount.py:314 +#: ipalib/plugins/automount.py:323 msgid "Master file" msgstr "" -#: ipalib/plugins/automount.py:315 +#: ipalib/plugins/automount.py:324 msgid "Automount master file." msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/plugins/automount.py:331 msgid "" "Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/automount.py:334 +#: ipalib/plugins/automount.py:343 +#, python-format msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/automount.py:505 +#: ipalib/plugins/automount.py:520 msgid "Map" msgstr "" -#: ipalib/plugins/automount.py:506 +#: ipalib/plugins/automount.py:521 msgid "Automount map name." msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "Описание" - -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" +msgstr "" + +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" +msgstr "" + +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." +msgstr "" + +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "" + +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "" + +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "" + +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" +msgstr "Ключ" + +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." +msgstr "" + +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" +msgstr "" + +#: ipalib/plugins/automount.py:615 +msgid "description" +msgstr "описание" + +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "" + +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" +msgstr "" + +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "" + +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "" + +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." +msgstr "" + +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "" + +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:768 +msgid "Mount point" +msgstr "Точка монтирования" + +#: ipalib/plugins/automount.py:772 +msgid "Parent map" +msgstr "" + +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." +msgstr "" + +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:846 +msgid "New mount information" +msgstr "" + +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." +msgstr "" + +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "" + +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" +msgstr "" + +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" +msgstr "" + +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" +msgstr "" + +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" +msgstr "" + +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" +msgstr "" + +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" +msgstr "" + +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" +msgstr "" + +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" +msgstr "" + +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" +msgstr "" + +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" +msgstr "" + +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" +msgstr "" + +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" -msgstr "Ключ" +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" +msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" -msgstr "описание" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" +msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/automount.py:659 +#: ipalib/plugins/baseldap.py:632 msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/automount.py:717 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -" Create a new automount key.\n" -" " +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/automount.py:742 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" -msgstr "Точка монтирования" - -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/automount.py:772 +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 msgid "" -"\n" -" Delete an automount key.\n" -" " +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" +msgstr "Ограничение по времени" + +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" +msgstr "Ограничение времени поиска в секундах" + +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" +msgstr "Ограничение по размеру" + +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/cert.py:43 +msgid "" +"\n" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" +msgstr "Сбой при декодировании Certificate Signing Request" + +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "Сбой при декодировании Certificate Signing Request: %s" + +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" +msgstr "Сертификат" + +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" +msgstr "Серийный номер" + +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/cert.py:404 +msgid "Request id" +msgstr "ID запроса" + +#: ipalib/plugins/cert.py:410 +msgid "Request status" +msgstr "Статус запроса" + +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" +msgstr "" + +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." +msgstr "" + +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" -msgstr "" +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "Отозван" + +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "Причина" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" -msgstr "" +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" +msgstr "Причина для отзыва сертификата (0-10)" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." -msgstr "" +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "Ошибка" -#: ipalib/plugins/baseldap.py:444 +#: ipalib/plugins/config.py:31 msgid "" "\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" +"Server configuration\n" "\n" -" allow_only tells us what mode to check in:\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" +"NOTES:\n" "\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:474 -msgid "" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Callback registration interface\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:561 -msgid "" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:703 -msgid "" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +"EXAMPLES:\n" +"\n" +" Show basic server configuration:\n" +" ipa config-show\n" +"\n" +" Show all configuration options:\n" +" ipa config-show --all\n" +"\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/baseldap.py:750 -msgid "" -"\n" -" Retrieve an LDAP entry.\n" -" " +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" +msgstr "Настройка" + +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " +#: ipalib/plugins/config.py:105 +msgid "Default shell" +msgstr "Оболочка по умолчанию" + +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/config.py:110 +msgid "Default users group" +msgstr "Группа пользователей по умолчанию" + +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/baseldap.py:988 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/baseldap.py:1120 -msgid "" -"\n" -" Add other LDAP entries to members.\n" -" " +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Remove LDAP entries from members.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/baseldap.py:1335 -msgid "" -"\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "Ограничение по времени" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" -msgstr "Ограничение времени поиска в секундах" - -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" -msgstr "Ограничение по размеру" - -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/baseldap.py:1552 -msgid "" -"\n" -" Base class for reverse member manipulation.\n" -" " +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/baseldap.py:1574 -msgid "" -"\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" -" " +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/baseldap.py:1687 -msgid "" -"\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/batch.py:21 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/cert.py:22 -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" -"\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -"\n" -"In order to request a certificate:\n" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -"\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" -msgstr "Сбой при декодировании Certificate Signing Request" - -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "Сбой при декодировании Certificate Signing Request: %s" - -#: ipalib/plugins/cert.py:142 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:162 -msgid "" +"Group to Group Delegation\n" "\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:188 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:202 -msgid "" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" "\n" -" Submit a certificate signing request.\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "Сертификат" - -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 +msgid "" +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" -msgstr "Серийный номер" - -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" -msgstr "ID запроса" - -#: ipalib/plugins/cert.py:408 -msgid "Request status" -msgstr "Статус запроса" - -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" -msgstr "Отозван" - -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "Причина" - -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "Причина для отзыва сертификата (0-10)" - -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" -msgstr "" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "Ошибка" +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." +msgstr "" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Manage the IPA configuration\n" +"Domain Name System (DNS)\n" "\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" +"Manage DNS zone and resource records.\n" "\n" -" To show the current configuration:\n" -" ipa config-show\n" +"EXAMPLES:\n" "\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" +"\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -"The available options are:\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" +"\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -"User management options:\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -"Server Configuration.\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" "\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" -msgstr "Настройка" - -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" -msgstr "Оболочка по умолчанию" - -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" -msgstr "Группа пользователей по умолчанию" - -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "Режим миграции" - -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:183 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify configuration options.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/dns.py:423 +msgid "" +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 +#: ipalib/plugins/dns.py:439 msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/delegation.py:152 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add a new delegation.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/delegation.py:176 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Delete a delegation.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/delegation.py:219 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Search for delegations.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "" -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" +msgstr "" -#: ipalib/plugins/dns.py:289 +#: ipalib/plugins/dns.py:652 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:290 +#: ipalib/plugins/dns.py:653 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:296 +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" + +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" + +#: ipalib/plugins/dns.py:665 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:308 +#: ipalib/plugins/dns.py:678 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:309 +#: ipalib/plugins/dns.py:679 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:316 +#: ipalib/plugins/dns.py:686 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:317 +#: ipalib/plugins/dns.py:687 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:324 +#: ipalib/plugins/dns.py:694 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:325 +#: ipalib/plugins/dns.py:695 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:332 +#: ipalib/plugins/dns.py:702 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:333 +#: ipalib/plugins/dns.py:703 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:340 +#: ipalib/plugins/dns.py:710 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:341 +#: ipalib/plugins/dns.py:711 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:349 +#: ipalib/plugins/dns.py:719 msgid "SOA time to live" msgstr "" -#: ipalib/plugins/dns.py:350 +#: ipalib/plugins/dns.py:720 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:354 +#: ipalib/plugins/dns.py:724 msgid "SOA class" msgstr "" -#: ipalib/plugins/dns.py:355 +#: ipalib/plugins/dns.py:725 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:365 +#: ipalib/plugins/dns.py:735 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:366 +#: ipalib/plugins/dns.py:736 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:372 +#: ipalib/plugins/dns.py:742 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:373 +#: ipalib/plugins/dns.py:743 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:388 +#: ipalib/plugins/dns.py:759 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:391 +#: ipalib/plugins/dns.py:762 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:397 +#: ipalib/plugins/dns.py:775 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" -msgstr "Время жизни" - -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "Время жизни" + +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:735 +#: ipalib/plugins/dns.py:972 +#, 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:740 +#: ipalib/plugins/dns.py:977 +#, python-format msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:792 +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1250 +#, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:802 +#: ipalib/plugins/dns.py:1259 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:807 +#: ipalib/plugins/dns.py:1264 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:834 +#: ipalib/plugins/dns.py:1291 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:835 +#: ipalib/plugins/dns.py:1292 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:845 +#: ipalib/plugins/dns.py:1302 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:875 +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "" + +#: ipalib/plugins/dns.py:1331 +#, python-format msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:936 +#: ipalib/plugins/dns.py:1389 +#, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:940 +#: ipalib/plugins/dns.py:1393 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:962 +#: ipalib/plugins/dns.py:1415 +#, python-format msgid "Host '%(host)s' not found" msgstr "Хост '%(host)s' не найден" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" "Entitlements\n" @@ -2262,183 +2869,128 @@ msgid "" "Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 msgid "UUID" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 msgid "Product" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 msgid "Quantity" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 msgid "Consumed" msgstr "" #: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/entitle.py:282 +#: ipalib/plugins/entitle.py:280 +#, python-format msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:394 +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:397 +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:479 +#: ipalib/plugins/entitle.py:472 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:483 +#: ipalib/plugins/entitle.py:476 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" -msgstr "" - -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:495 +#: ipalib/plugins/entitle.py:488 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:666 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/group.py:26 msgid "" "\n" "Groups of users\n" "\n" "Manage groups of users. By default, new groups are POSIX groups. You\n" "can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" "converted to non-POSIX groups.\n" "\n" "Every group must have a description.\n" @@ -2481,147 +3033,124 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "" + +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/group.py:100 +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 msgid "User Groups" msgstr "Группы пользователей" -#: ipalib/plugins/group.py:108 +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" + +#: ipalib/plugins/group.py:109 msgid "Group name" msgstr "Имя группы" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "Описание группы" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 msgid "GID" msgstr "ID группы" -#: ipalib/plugins/group.py:120 +#: ipalib/plugins/group.py:121 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:132 +#: ipalib/plugins/group.py:131 +#, python-format msgid "Added group \"%(value)s\"" msgstr "Добавлена группа \"%(value)s\"" -#: ipalib/plugins/group.py:137 +#: ipalib/plugins/group.py:136 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:155 +#, python-format msgid "Deleted group \"%(value)s\"" msgstr "Удалена группа \"%(value)s\"" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:189 +#: ipalib/plugins/group.py:185 +#, python-format msgid "Modified group \"%(value)s\"" msgstr "Изменена группа \"%(value)s\"" -#: ipalib/plugins/group.py:194 +#: ipalib/plugins/group.py:190 msgid "change to a POSIX group" msgstr "изменить на группу POSIX" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:227 +#, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "совпадает %(count)d группа" msgstr[1] "совпадают %(count)d группы" msgstr[2] "совпадают %(count)d групп" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 +#: ipalib/plugins/group.py:233 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" #: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:285 +#: ipalib/plugins/group.py:284 +#, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 +#: ipalib/plugins/group.py:305 msgid "not allowed to modify user entries" msgstr "изменение записей пользователя не доступно" -#: ipalib/plugins/group.py:312 +#: ipalib/plugins/group.py:311 msgid "not allowed to modify group entries" msgstr "изменение записей группы не доступно" -#: ipalib/plugins/group.py:331 +#: ipalib/plugins/group.py:330 msgid "Not a managed group" msgstr "Нет управляемой группы" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" "Host-based access control\n" @@ -2643,7 +3172,7 @@ msgid "" "\n" " Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" " anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -2651,7 +3180,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -2660,7 +3189,7 @@ msgid "" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" " ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -2671,264 +3200,212 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "" + +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "" + +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/hbacrule.py:126 +#: ipalib/plugins/hbacrule.py:132 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 msgid "Rule name" msgstr "Наименование правила" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "Тип правила (разрешо или запрещено)" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "" -#: ipalib/plugins/hbacrule.py:137 +#: ipalib/plugins/hbacrule.py:143 msgid "Rule type" msgstr "Тип правила" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 msgid "User category" msgstr "Категория пользователя" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 msgid "Host category" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:155 +#: ipalib/plugins/hbacrule.py:165 msgid "Source host category" msgstr "" -#: ipalib/plugins/hbacrule.py:156 +#: ipalib/plugins/hbacrule.py:166 msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:161 +#: ipalib/plugins/hbacrule.py:171 msgid "Service category" msgstr "Категория службы" -#: ipalib/plugins/hbacrule.py:162 +#: ipalib/plugins/hbacrule.py:172 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 msgid "Enabled" msgstr "Включено" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 msgid "Users" msgstr "Пользователи" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "" - -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 msgid "Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 msgid "Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 msgid "Services" msgstr "Службы" -#: ipalib/plugins/hbacrule.py:206 +#: ipalib/plugins/hbacrule.py:216 msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:227 +#, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:234 +#: ipalib/plugins/hbacrule.py:240 +#, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:248 +#, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:273 +#, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:290 +#: ipalib/plugins/hbacrule.py:288 +#, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:319 +#: ipalib/plugins/hbacrule.py:315 +#, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 msgid "Access time" msgstr "Время доступа" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacsvc.py:19 +#: ipalib/plugins/hbacsvc.py:27 msgid "" "\n" "HBAC Services\n" @@ -2953,70 +3430,67 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" #: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "Имя службы" +msgid "HBAC Services" +msgstr "" #: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "Имя службы" + +#: ipalib/plugins/hbacsvc.py:80 msgid "HBAC service description" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:85 +#: ipalib/plugins/hbacsvc.py:90 +#, python-format msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:94 +#: ipalib/plugins/hbacsvc.py:98 +#, python-format msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:104 +#: ipalib/plugins/hbacsvc.py:106 +#, python-format msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/hbacsvc.py:114 +#: ipalib/plugins/hbacsvc.py:115 +#, python-format msgid "%(count)d HBAC service matched" msgid_plural "%(count)d HBAC services matched" msgstr[0] "" @@ -3024,13 +3498,10 @@ msgstr[1] "" msgstr[2] "" #: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/hbacsvcgroup.py:24 msgid "" "\n" "HBAC Service Groups\n" @@ -3057,94 +3528,245 @@ msgid "" " ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:71 msgid "Service group name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 +#: ipalib/plugins/hbacsvcgroup.py:78 msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" #: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" #: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format msgid "%(count)d HBAC service group matched" msgid_plural "%(count)d HBAC service groups matched" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbactest.py:27 msgid "" "\n" -" Remove members from an HBAC service group.\n" -" " +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "" + +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "" + +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "" + +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" +msgstr "" + +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "" + +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" + +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" +msgstr "" + +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" +msgstr "" + +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" +msgstr "" + +#: ipalib/plugins/host.py:42 msgid "" "\n" "Hosts/Machines\n" @@ -3200,219 +3822,203 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" - #: ipalib/plugins/host.py:101 msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/host.py:129 +#: ipalib/plugins/host.py:142 +#, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/host.py:216 +msgid "host" +msgstr "" + +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/host.py:231 +#: ipalib/plugins/host.py:257 msgid "Host name" msgstr "" -#: ipalib/plugins/host.py:238 +#: ipalib/plugins/host.py:264 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:242 +#: ipalib/plugins/host.py:268 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:243 +#: ipalib/plugins/host.py:269 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/host.py:248 +#: ipalib/plugins/host.py:274 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/host.py:252 +#: ipalib/plugins/host.py:278 msgid "Platform" msgstr "Платформа" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:279 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "Аппаратная платформа узла (например, \"Lenovo T61\")" -#: ipalib/plugins/host.py:257 +#: ipalib/plugins/host.py:283 msgid "Operating system" msgstr "Операционная система" -#: ipalib/plugins/host.py:258 +#: ipalib/plugins/host.py:284 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "Операционная система узла и ее версия (например, \"Fedora 9\")" -#: ipalib/plugins/host.py:262 +#: ipalib/plugins/host.py:288 msgid "User password" msgstr "Пароль пользователя" -#: ipalib/plugins/host.py:263 +#: ipalib/plugins/host.py:289 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:266 +#: ipalib/plugins/host.py:292 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:271 +#: ipalib/plugins/host.py:297 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:369 +#, python-format msgid "Added host \"%(value)s\"" msgstr "Добавлен узел \"%(value)s\"" -#: ipalib/plugins/host.py:316 +#: ipalib/plugins/host.py:374 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:319 +#: ipalib/plugins/host.py:377 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:322 +#: ipalib/plugins/host.py:380 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" + +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/host.py:413 +#: ipalib/plugins/host.py:481 +#, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:426 +#: ipalib/plugins/host.py:501 +#, python-format msgid "Deleted host \"%(value)s\"" msgstr "Удален узел \"%(value)s\"" -#: ipalib/plugins/host.py:431 +#: ipalib/plugins/host.py:506 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:542 +#: ipalib/plugins/host.py:615 +#, python-format msgid "Modified host \"%(value)s\"" msgstr "Изменен узел \"%(value)s\"" -#: ipalib/plugins/host.py:549 +#: ipalib/plugins/host.py:622 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/host.py:623 +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." +msgstr "" + +#: ipalib/plugins/host.py:712 +#, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "совпадает %(count)d узел" msgstr[1] "совпадает %(count)d узла" msgstr[2] "совпадает %(count)d узлов" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:688 +#: ipalib/plugins/host.py:789 +#, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/hostgroup.py:25 msgid "" "\n" "Groups of hosts.\n" @@ -3444,3729 +4050,3249 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" +msgstr "" + +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" +msgstr "" + +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/hostgroup.py:78 +#: ipalib/plugins/hostgroup.py:80 msgid "Host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:79 +#: ipalib/plugins/hostgroup.py:81 msgid "Name of host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:86 +#: ipalib/plugins/hostgroup.py:88 msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:98 +#: ipalib/plugins/hostgroup.py:116 +#, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "Добавлена hostgroup \"%(value)s\"" -#: ipalib/plugins/hostgroup.py:104 +#: ipalib/plugins/hostgroup.py:131 +#, python-format msgid "" -"\n" -" Delete a hostgroup.\n" -" " +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/hostgroup.py:108 +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." +msgstr "" + +#: ipalib/plugins/hostgroup.py:155 +#, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "Удалена hostgroup \"%(value)s\"" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:118 +#: ipalib/plugins/hostgroup.py:163 +#, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "Изменена hostgroup \"%(value)s\"" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/hostgroup.py:128 +#: ipalib/plugins/hostgroup.py:177 +#, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "совпадает %(count)d hostgroup" msgstr[1] "совпадают %(count)d hostgroup" msgstr[2] "совпадают %(count)d hostgroup" -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:44 +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:47 +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "" - -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "" - -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "" - -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "" - -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "" - -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "" - -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "" - -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "" - -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "" - -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" -msgstr "" - -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" -msgstr "" - -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" -msgstr "" - -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" -msgstr "" - -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/internal.py:126 +#: ipalib/plugins/internal.py:147 msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." -msgstr "" - -#: ipalib/plugins/internal.py:128 -msgid "Issued To" -msgstr "" - -#: ipalib/plugins/internal.py:129 -msgid "Common Name" -msgstr "" - -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "" - -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" -msgstr "" - -#: ipalib/plugins/internal.py:133 -msgid "Issued By" -msgstr "" - -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" - -#: ipalib/plugins/internal.py:135 -msgid "Issued On" -msgstr "" - -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI
follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "Данные" - -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" #: ipalib/plugins/internal.py:199 -msgid "Add Host" +msgid "Collapse All" msgstr "" #: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" #: ipalib/plugins/internal.py:202 -msgid "Host Settings" +msgid "Identity Settings" msgstr "" #: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +msgid "${entity} ${primary_key} Settings" msgstr "" #: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "" - -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" #: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" #: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +msgid "Operations Error" msgstr "" #: ipalib/plugins/internal.py:212 -msgid "Set OTP" +msgid "Confirmation" msgstr "" #: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" #: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" +msgstr "" + +#: ipalib/plugins/internal.py:217 +msgid "Redirection" +msgstr "" + +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" #: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +msgid "Remove ${entity}" msgstr "" #: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" #: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +msgid "Automount Location Settings" msgstr "" #: ipalib/plugins/internal.py:256 -msgid "Add Service" +msgid "Map Type" msgstr "" #: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +msgid "Direct" msgstr "" #: ipalib/plugins/internal.py:258 -msgid "Service Settings" +msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" #: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" #: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" #: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" #: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +msgid "Organization" +msgstr "" + +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 +msgid "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." +msgstr "" + +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:287 -msgid "Access this host" +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "" + +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" #: ipalib/plugins/internal.py:290 -msgid "Run Commands" +msgid "SHA1 Fingerprint" msgstr "" #: ipalib/plugins/internal.py:291 -msgid "Any Command" +msgid "Superseded" msgstr "" #: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +msgid "Unspecified" msgstr "" #: ipalib/plugins/internal.py:293 -msgid "As Whom" +msgid "Valid Certificate Present" msgstr "" #: ipalib/plugins/internal.py:294 -msgid "Any Group" +msgid "Validity" msgstr "" #: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "" - -#: ipalib/plugins/internal.py:297 -msgid "External" +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "" +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "Данные" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" #: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +msgid "Standard Record Types" msgstr "" #: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +msgid "Records for DNS Zone" msgstr "" #: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "" - -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "" - -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +msgid "Record Type" msgstr "" #: ipalib/plugins/internal.py:314 -msgid "Password change complete" +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" #: ipalib/plugins/internal.py:319 -msgid "Add" +msgid "Certificates" msgstr "" #: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +msgid "Consume" msgstr "" #: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "" - -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +msgid "Consume Entitlement" msgstr "" #: ipalib/plugins/internal.py:323 -msgid "Add Many" +msgid "Download" msgstr "" #: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "" - -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +msgid "Download Certificate" msgstr "" #: ipalib/plugins/internal.py:326 -msgid "Close" +msgid "Import" msgstr "" #: ipalib/plugins/internal.py:327 -msgid "Enroll" +msgid "Import Certificate" msgstr "" #: ipalib/plugins/internal.py:328 -msgid "Find" +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" #: ipalib/plugins/internal.py:329 -msgid "Get" +msgid "Loading..." msgstr "" #: ipalib/plugins/internal.py:330 -msgid "Issue" -msgstr "" - -#: ipalib/plugins/internal.py:331 -msgid "OK" +msgid "No Certificate." msgstr "" #: ipalib/plugins/internal.py:332 -msgid "Reset" +msgid "Register" msgstr "" #: ipalib/plugins/internal.py:333 -msgid "Delete" -msgstr "" - -#: ipalib/plugins/internal.py:334 -msgid "Restore" -msgstr "" - -#: ipalib/plugins/internal.py:335 -msgid "Retry" -msgstr "" - -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" #: ipalib/plugins/internal.py:338 -msgid "View" +msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" #: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" #: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" #: ipalib/plugins/internal.py:362 -msgid "Quick Links" +msgid "Access Denied" msgstr "" #: ipalib/plugins/internal.py:363 -msgid "Select All" +msgid "Access Granted" msgstr "" #: ipalib/plugins/internal.py:364 -msgid "Unselect All" +msgid "Include Disabled" msgstr "" #: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +msgid "Include Enabled" msgstr "" #: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" #: ipalib/plugins/internal.py:370 -msgid "General" +msgid "Run Test" msgstr "" #: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +msgid "Specify external ${entity}" msgstr "" #: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" #: ipalib/plugins/internal.py:378 -msgid "Audit" +msgid "Host Settings" msgstr "" #: ipalib/plugins/internal.py:379 -msgid "IPA Server" +msgid "Enrolled?" msgstr "" #: ipalib/plugins/internal.py:380 -msgid "Sudo" +msgid "Enrollment" msgstr "" #: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +msgid "Fully Qualified Host Name" msgstr "" #: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" -msgstr "" - -#: ipalib/plugins/internal.py:383 -msgid "Automount" -msgstr "" - -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:410 +msgid "Target" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:438 +msgid "Groups" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:445 +msgid "Allow" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:446 +msgid "Any Command" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:447 +msgid "Any Group" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:451 +msgid "Deny" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:452 +msgid "External" msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:453 +msgid "Access this host" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:457 +msgid "As Whom" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -#: ipalib/plugins/migration.py:300 +#: ipalib/plugins/internal.py:468 msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" -msgstr "" - -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d переменных" +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +#: ipalib/plugins/internal.py:494 msgid "" -"retrieve and print all attributes from the server. Affects command output." +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "загружен %(count)d подключаемый модуль" -msgstr[1] "загружено %(count)d подключаемых модуля" -msgstr[2] "загружено %(count)d подключаемых модулей" +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/netgroup.py:222 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Add members to a netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/netgroup.py:258 -msgid "" +"Kerberos ticket policy\n" "\n" -" Remove members from a netgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/passwd.py:19 -msgid "" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" "\n" -"Set a user's password\n" +"You can also create a per-user ticket policy by specifying the user login.\n" "\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" "\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" To reset your own password:\n" -" ipa passwd\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/permission.py:19 +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" +"Migration to IPA\n" "\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -"A permission is made up of a number of different parts:\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" +"The default user container is ou=People.\n" "\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" +"The default group container is ou=Groups.\n" "\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" "EXAMPLES:\n" "\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" "\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" -msgstr "" - -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" -msgstr "" - -#: ipalib/plugins/permission.py:89 -msgid "" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Permission object.\n" -" " -msgstr "" - -#: ipalib/plugins/permission.py:112 -msgid "Permission name" msgstr "" -#: ipalib/plugins/permission.py:119 +#: ipalib/plugins/migration.py:86 +#, python-format msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/permission.py:132 +#: ipalib/plugins/migration.py:87 msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" -msgstr "" - -#: ipalib/plugins/permission.py:138 -msgid "Member of group" -msgstr "" - -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/permission.py:177 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Add a new permission.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/ping.py:37 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" PKINIT Options\n" -" " -msgstr "" - -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pkinit.py:67 +#: ipalib/plugins/migration.py:373 msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/privilege.py:45 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -" Privilege object.\n" -" " +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" Add a new privilege.\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Delete a privilege.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -" Modify a privilege.\n" -" " +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/privilege.py:115 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Search for privileges.\n" -" " +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/privilege.py:153 +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/privilege.py:177 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " -msgstr "" - -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Class of Service object used for linking policies with groups\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d переменных" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Password Policy object\n" -" " +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "загружен %(count)d подключаемый модуль" +msgstr[1] "загружено %(count)d подключаемых модуля" +msgstr[2] "загружено %(count)d подключаемых модулей" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/netgroup.py:28 +msgid "" +"\n" +"Netgroups\n" +"\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" +"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" +"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" +"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "приоритет не может быть задан для глобальной политики" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" -#: ipalib/plugins/pwpolicy.py:423 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Display information about password policy.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -" Search for group password policies.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:20 -msgid "" +"Permissions\n" "\n" -"Roles\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"A permission may not contain other permissions.\n" "\n" -"Privileges are assigned to Roles.\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"A permission is made up of a number of different parts:\n" "\n" -"Roles can not contain other roles.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -"EXAMPLES:\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +"EXAMPLES:\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/role.py:101 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new role.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." msgstr "" -#: ipalib/plugins/role.py:151 +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Add members to a role.\n" -" " +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/role.py:167 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -" Add privileges to a role.\n" -" " +"Kerberos pkinit options\n" +"\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" +"\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" +"\n" +"For more information on anonymous pkinit see:\n" +"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" msgstr "" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" -"\n" +"Privileges\n" "\n" -"EXAMPLES:\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"A privilege may not contain other privileges.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "" + +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"Password policy\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/service.py:175 -msgid "" -"\n" -" Set individual attributes from some values from a certificate.\n" -"\n" -" entry_attrs is a dict of an entry\n" -"\n" -" returns nothing\n" -" " +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" -msgstr "Добавлена служба \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" +msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" -msgstr "Удалена служба \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" +msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmd.py:19 -msgid "" -"\n" -"Sudo Commands\n" -"\n" -"Commands used as building blocks for sudo\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" -"\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" -"\n" +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "приоритет не может быть задан для глобальной политики" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Groups of Sudo commands\n" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"Manage groups of Sudo commands.\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:117 +msgid "Modify a role." +msgstr "" + +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:19 -msgid "" -"\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" -"\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" -"\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" -"\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:44 -msgid "" -"\n" -" Sudo Rule management\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/selfservice.py:28 +msgid "" +"\n" +"Self-service Permissions\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"A Self-service permission defines what an object can change in its own entry.\n" +"\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/service.py:35 msgid "" "\n" -" Create new Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/sudorule.py:189 -msgid "" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:197 -msgid "" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Enable a Sudo rule.\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Добавлена служба \"%(value)s\"" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Удалена служба \"%(value)s\"" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +"Sudo Commands\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Commands used as building blocks for sudo\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" -"\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" -"\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" User object.\n" -" " msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" -msgstr "" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" -msgstr "" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Convert a manager dn into a userid\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "Добавлен пользователь \"%(value)s\"" +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." +msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "Удален пользователь \"%(value)s\"" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" +msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "Изменен пользователь \"%(value)s\"" +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" +msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "совпадает %(count)d пользователь" -msgstr[1] "совпадают %(count)d пользователя" -msgstr[2] "совпадают %(count)d пользователей" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Повторно введите %(label)s для проверки: " +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "Пароли не совпадают!" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "Отменено." +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" -msgstr "%(cver)s клиент не совместим с %(sver)s сервером на %(server)r" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" +msgstr "" + +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." +msgstr "" -#: ipalib/errors.py:318 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "получена неизвестная ошибка %(code)d от %(server)s: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "произошла внутренняя ошибка" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." +msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "произошла внутренняя ошибка на сервере %(server)r" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "неизвестная команда %(name)r" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "error on server %(server)r: %(error)s" -msgstr "ошибка на сервере %(server)r: %(error)s" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "невозможно подключиться к %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Неверный JSON-RPC запрос: %(error)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Ошибка Kerberos: %(major)s/%(minor)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" -msgstr "не получены регистрационные данные Kerberos" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." +msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Service %(service)r not found in Kerberos database" -msgstr "Служба %(service)r не найдена в базе данных Kerberos" +msgid "Disabled Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" -msgstr "Кэш регистрационных данных не найден" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "Срок действия билета истек" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" -msgstr "Права доступа на кэш регистрационных данных неверны" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" -msgstr "Ошибочный формат в кэше регистрационных данных " +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" -msgstr "Не могу определить KDC для запрошенной области (realm)" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Недостаточно прав для доступа: %(info)s" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "команде %(name)r не требуются параметры" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:661 -#, 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] "команда %(name)r принимает не более %(count)d аргумента" -msgstr[1] "команда %(name)r принимает не более %(count)d аргументов" -msgstr[2] "команда %(name)r принимает не более %(count)d аргументов" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" -msgstr "наложение аргументов и параметров: %(names)r" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "требуется %(name)r" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "неверный(ое) %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "api has no such namespace: %(name)r" -msgstr "api не предоставляет такого пространства имен (namespace): %(name)r" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "Пароли не совпадают" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." +msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "Команда пока не реализована" +#: ipalib/plugins/sudorule.py:710 +#, python-format +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" +msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "Такая запись уже существует" +#: ipalib/plugins/user.py:140 +msgid "user" +msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -"Для того чтобы создать службу для узла, вам необходимо зарегистрировать этот" -" узел" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -"Учетная запись службы не представлена в форме: служба/полностью-" -"определенное-имя: %(reason)s" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -"Область (realm) для учетной записи не совпадает с областью IPA сервера" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "Этой команде требуются права администратора" +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "Уже является posix группой" +#: ipalib/plugins/user.py:191 +msgid "Full name" +msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" -msgstr "Учетная запись задана в форме отличной от user@REALM: %(principal)r" +#: ipalib/plugins/user.py:196 +msgid "Display name" +msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "Группа не может входить в состав самой себя" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" +msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Декодирование Base64 прошло с ошибкой: %(reason)s" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" -msgstr "Группа не может быть добавлена сама в себя" +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" -msgstr "Группа по умолчанию для пользователя не может быть удалена" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" +msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" -msgstr "Хост не имеет соответствующей A записи в DNS" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" +msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -"Удаление управляемой группы не разрешено. Сначала ее необходимо отключить." -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" -msgstr "нет команды или раздела справки для %(topic)r" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "изменение противоречит другому сделанному изменению" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" +msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" -msgstr "изменения не внесены" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" +msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" -msgstr "для этого запроса превышены ограничения" +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" +msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1350 +#: ipalib/plugins/user.py:340 #, python-format -msgid "%(attr)s: Invalid syntax." +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/errors.py:1391 +#: ipalib/plugins/user.py:361 #, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Операция с сертификатом не может быть завершена: %(error)s" +msgid "Added user \"%(value)s\"" +msgstr "Добавлен пользователь \"%(value)s\"" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "Результаты усечены. Попробуйте задать более точные условия поиска" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Удален пользователь \"%(value)s\"" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Изменен пользователь \"%(value)s\"" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" -msgstr "Список записей LDAP" - -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "неверный тип" - -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "Допускается только одно значение" - -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "должно быть либо True, либо False" - -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "должно быть целое" - -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "должно быть не менее %(minvalue)d" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "совпадает %(count)d пользователь" +msgstr[1] "совпадают %(count)d пользователя" +msgstr[2] "совпадают %(count)d пользователей" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "может быть не более %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "должно быть десятичным числом" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" -msgstr "должно быть не менее %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" -msgstr "может быть не более %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." +msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "должно совпадать с шаблоном \"%(pattern)s\"" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "должно являться двоичными данными" +msgid "Enabled user account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "должно содержать не менее %(minlength)d байт" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." +msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "может содержать не более %(maxlength)d байт" +msgid "Unlocked account \"%(value)s\"" +msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" -msgstr "должно содержать точно %(length)d байт" +msgid "Permission denied: %(file)s" +msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "должно являться текстом Unicode" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "должно быть не короче %(minlength)d символов" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "может быть не длиннее %(maxlength)d символов" +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "должно быть точно %(length)d символов длинной" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" -msgstr "должно являться одним из %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "Невозможно связаться с CMS (%s)" @@ -7187,14 +7313,17 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form " "\"%(subject_base)s\"" -msgstr "" -"Заголовок запроса \"%(request_subject)s\" не совпадает с формой " -"\"%(subject_base)s\"" +msgstr "Заголовок запроса \"%(request_subject)s\" не совпадает с формой \"%(subject_base)s\"" #: ipaserver/plugins/selfsign.py:104 #, python-format @@ -7213,283 +7342,297 @@ msgstr "невозможно получить следующий порядко msgid "certutil failure" msgstr "ошибка certutil" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7509,248 +7652,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7841,5 +7972,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/sv.po b/install/po/sv.po index 99b18ba74..c8a8f77e7 100644 --- a/install/po/sv.po +++ b/install/po/sv.po @@ -2,4332 +2,4145 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-18 00:49+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2011-03-07 20:40+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Swedish (http://www.transifex.net/projects/p/fedora/team/sv/)\n" +"Language-Team: Swedish (http://www.transifex.net/projects/p/fedora/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -msgstr "" - -#: ipalib/plugins/cert.py:104 -msgid "" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" -" Return the value of CN in the subject of the request or None\n" -" " +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:626 +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:460 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" - -#: ipalib/plugins/hbacrule.py:91 -msgid "" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:469 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:523 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:735 +msgid "Active zone" msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:537 +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Modify information about a host.\n" -" " +"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/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "" + +#: ipalib/plugins/internal.py:147 msgid "" "Your Kerberos ticket is no longer valid. Please run kinit and then click " "'Retry'. If this is your first time running the IPA Web UI = count)" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "" + +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "" + +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "" + +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/passwd.py:19 +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/passwd.py:46 +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Set a user's password\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "" + +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "" + +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "" + +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "" + +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "" + +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "" + +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "" + +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "" + +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "" + +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "" + +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "" + +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "" + +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "" + +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "" + +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "" + +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "" + +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "" + +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "" + +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "" + +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "" + +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "" + +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "" + +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "" + +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "" + +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "" + +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "" + +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "" + +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "" + +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "" + +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "" + +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "" + +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "" + +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "" + +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "" + +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "" + +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "" + +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "" + +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "" + +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "" + +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "" + +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "" + +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "" + +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "" + +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "" + +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "" + +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "" + +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "" + +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "" + +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "" + +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "" + +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "" + +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/passwd.py:67 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Permission object.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:500 +msgid "DNS" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:508 +msgid "True" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:510 +msgid "Next" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:511 +msgid "Page" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" msgstr "" -#: ipalib/plugins/pkinit.py:19 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Kerberos pkinit options\n" +"Kerberos ticket policy\n" "\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -"For more information on anonymous pkinit see:\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 msgid "" "\n" -" Add a new privilege.\n" -" " +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:255 msgid "" -"\n" -" Modify a privilege.\n" -" " +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/migration.py:342 +msgid "User container" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Password Policy object\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Add a new group password policy.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"Netgroups\n" "\n" -"Roles can not contain other roles.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "" + +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "" + +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "" + +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "" + +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "" + +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" - -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Self-service Permissions\n" +"Permissions\n" "\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"A permission may not contain other permissions.\n" "\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"EXAMPLES:\n" +"A permission is made up of a number of different parts:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" - -#: ipalib/plugins/selfservice.py:56 -msgid "" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" msgstr "" -#: ipalib/plugins/selfservice.py:114 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new self-service permission.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Kerberos pkinit options\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" entry_attrs is a dict of an entry\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" -" returns nothing\n" -" " +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" +"\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "" + +#: ipalib/plugins/role.py:26 msgid "" "\n" -" Add members to sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" +"\n" +"Roles can not contain other roles.\n" "\n" -" Remove members from sudo command group.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:19 -msgid "" +"EXAMPLES:\n" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Sudo Rule management\n" -" " +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"\n" +msgstr "" + +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "" + +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "" + +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "" + +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "" + +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "" + +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:400 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Delete a user.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" -msgstr[1] "" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:243 +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:274 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:597 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Insufficient access: %(info)s" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:661 -#, 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/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:755 -#, python-format -msgid "api has no such namespace: %(name)r" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:874 +#: ipalib/plugins/user.py:29 msgid "" -"The realm for the principal does not match the realm for this IPA server" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1192 -msgid "must be binary data" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7157,6 +7286,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7181,283 +7315,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7477,248 +7625,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7809,5 +7945,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/uk.po b/install/po/uk.po index 40c184311..951612bf8 100644 --- a/install/po/uk.po +++ b/install/po/uk.po @@ -2,15 +2,16 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # -# Yuri Chornoivan , 2011. +# Translators: # jdennis , 2011. +# Yuri Chornoivan , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-08-02 07:04+0000\n" -"Last-Translator: yurchor \n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" +"Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,9456 +19,7279 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" -msgstr "" -"\n" -"Підпакунок, у якому містяться всі основні додатки.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Введіть %(label)s ще раз для перевірки: " -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" -msgstr "" -"\n" -"Інструкції керування доступом до сервера каталогів (ACI)\n" -"\n" -"ACI використовуються для надання або заборони доступу до даних. Поточну\n" -"версію цього модуля розроблено з метою надання, а не заборони доступу.\n" -"\n" -"Команди aci розроблено для надання прав доступу до оновлення вже\n" -"створених записів та додавання або вилучення записів. Метою ACI, які\n" -"постачаються з IPA є створення набору низькорівневих прав доступу до особливих\n" -"груп, які називаються групами завдань. Ці низькорівневі права доступу\n" -"можна поєднувати у ролі, які надаватимуть ширший доступ. Ролі є іншим типом\n" -"груп, який називається групами ролей.\n" -"\n" -"Наприклад, якщо у вас є групи завдань, які надають доступ до додавання або зміни записів\n" -"користувачів, ви можете створити роль, адміністратора користувачів (useradmin).\n" -"Далі, можна призначати користувачів до ролі useradmin, щоб надати їм доступ до операцій,\n" -"визначених групами завдань.\n" -"\n" -"Ви можете створити ACI, які надаватимуть дозволи так, що користувачі групи A зможуть\n" -"записувати атрибути для групи B.\n" -"\n" -"Параметр типу визначає карту, яка застосовується до всіх записів у списках користувачів, груп та\n" -"розташування вузла. Основним призначенням є надання прав доступу на додавання\n" -"(створення нових записів).\n" -"\n" -"ACI складається з трьох частин:\n" -"1. призначення\n" -"2. прав доступу\n" -"3. правил прив’язування\n" -"\n" -"Призначення — набір правил, який визначає, які з об’єктів LDAP є призначенням.\n" -"Призначення може включати список атрибутів, області цієї ієрархії LDAP або\n" -"фільтра LDAP.\n" -"\n" -"До призначень включаються:\n" -"- attrs: список атрибутів, яких стосується призначення;\n" -"- type: тип об’єктів (користувач, група, вузол, служба тощо);\n" -"- memberof: учасники групи;\n" -"- targetgroup: надати доступ до зміни певної групи. Ця частина в основному\n" -" розроблена для надання дозволу користувачам на додавання або вилучення учасників\n" -" певної групи.\n" -"- filter: чинний фільтр LDAP, використаний для звуження області призначення.\n" -"- subtree: використовується для застосування правила для цілого набору об’єктів.\n" -" Наприклад, для надання доступу на додавання користувачів вам слід надати право\n" -" доступу \"add\" до підієрархії\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. Параметр subtree\n" -" є безпечним для об’єктів, які можуть не стосуватися параметром type.\n" -"\n" -"Права доступу визначають набір доступних ACI записів, можуть містити з одного\n" -"або декількох варіантів:\n" -"1. write - запис одного або декількох атрибутів;\n" -"2. read - читання одного або декількох атрибутів;\n" -"3. add - додавання нового запису до ієрархії;\n" -"4. delete - вилучення існуючого запису;\n" -"5. all - надання всіх прав доступу.\n" -"\n" -"Зауважте відмінність між атрибутами та записами. Права доступу є незалежними,\n" -"отже можливість додавання користувача не означає можливості зміни параметрів\n" -"його облікового запису.\n" -"\n" -"Правило прив’язування визначає, кому це ACI надає права доступу. Сервер LDAP\n" -"надає можливість визначати будь-який коректний запис LDAP, але вам варто використовувати\n" -"групи завдань, щоб права можна було без проблем спільно використовувати для декількох ролей.\n" -"\n" -"Повніший опис керування доступом можна знайти тут:\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -"ЗАУВАЖЕННЯ: у поточній версії ACI додаються за допомогою додатка прав доступу.\n" -"Ці приклади мають продемонструвати роботу різних параметрів, але у поточній\n" -"версії це завдання виконується за допомогою команди надання прав доступу (останній приклад).\n" -"\n" -" Додавання ACI для надання доступу групі \"secretaries\" до оновлення адреси будь-якого користувача:\n" -" ipa group-add --desc=\"Офісні секретарки\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Секретарки записують адреси\"\n" -"\n" -" Показ нового ACI:\n" -" ipa aci-show --prefix=none \"Секретарки записують адреси\"\n" -"\n" -" Додавання ACI, яке надасть доступ учасникам групи \"addusers\" доступ до додавання нових користувачів:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Додавання користувачів\"\n" -"\n" -" Додавання ACI, яке надасть доступ учасникам групи \"editors\" до керування записами\n" -"учасників групи \"admins\":\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Редактори керують адміністраторами\"\n" -"\n" -" Додавання ACI, яке надасть доступ учасникам групи \"admins\" до зміни поштової адреси та індексу користувачів групи \"editors\":\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"Адміністратори редагують адреси редакторів\"\n" -"\n" -" Додавання ACI, яке надасть доступ групі \"admins\" до зміни поштової адреси та індексу всіх, хто працює начальником:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Зміна адрес тих, хто працює начальником\"\n" -"\n" -" Додавання повністю нового типу записів до IPA, який не визначається жодним з параметрів --type, створення прав доступу:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Додавання помаранчевих записів\" add_orange\n" -"\n" -"\n" -"Команда show показує прості 389-ds ACI.\n" -"\n" -"ВАЖЛИВО: під час зміни атрибутів призначення вже створеного ACI вам\n" -"слід включити всі вже створені атрибути. Під час внесення змін до aci\n" -"targetattr ЗАМІНЮЄ поточні атрибути, а не додає ці атрибути.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "Паролі не збігаються!" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" -msgstr "Список значень ACI" +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "Скасовано." -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " -msgstr "" -"\n" -" За вказаною назвою та префіксом побудувати ім’я ACI.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" +msgstr "Призначення: %s" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " -msgstr "" -"\n" -" Обробити назву ACI і повернути пару значень — префікс ACI і\n" -" справжню назву ACI.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." +msgstr "Використання: ipa [загальні параметри] КОМАНДА ..." -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " -msgstr "" -"\n" -" Пропустити назву групи крізь фільтр memberOf\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" +msgstr "Вбудовані команди:" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " -msgstr "" -"\n" -" За вказаною назвою та набором ключових слів побудувати ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" +msgstr "Підтеми довідки:" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "type, filter, subtree і targetgroup є взаємовиключними" +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "Теми довідки:" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" -msgstr "Слід вказати префікс ACI" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "Щоб ознайомитися зі списком загальних параметрів, віддайте команду «ipa --help»." -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" -msgstr "" -"слід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або " -"memberof" +#: ipalib/cli.py:816 +msgid "Topic commands:" +msgstr "Команди теми:" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" -msgstr "filter і memberof не можна використовувати разом" +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "Назва команди" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" -msgstr "group, permission і self не можна використовувати разом" +#: ipalib/cli.py:1130 +msgid "No file to read" +msgstr "Немає файла для читання" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" -msgstr "Слід вказати одне зі значень, group, permission або self" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "Клієнт %(cver)s є несумісним з сервером %(sver)s на %(server)r" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" -msgstr "Групи з назвою «%s» не існує" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "%(server)s повідомляє про невідому помилку %(code)d: %(error)s" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" -msgstr "порожній фільтр" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "сталася внутрішня помилка" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" -msgstr "Синтаксична помилка: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "на сервері %(server)r сталася внутрішня помилка" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" -"Перетворення ACI на еквівалентні ключові слова.\n" -"\n" -" Використовується для внесення змін, отже ви можемо об’єднати\n" -" вхідне ключове слово і вже створене ACI і передати результат до\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "невідома команда %(name)r" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" -msgstr "Не знайдено ACI з назвою «%s»" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "помилка на сервері %(server)r: %(error)s" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" -msgstr "префікс ACI" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "не вдалося встановити з’єднання з %(uri)r: %(error)s" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "" -"Префікс, за яким визначається тип ACI (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "некоректний запит JSON-RPC: %(error)s" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" -"\n" -" Об’єкт ACI.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "помилка під час розміщення даних для каналу передавання XML-RPC: %(error)s" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" -msgstr "ACI" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Помилка Kerberos: %(major)s/%(minor)s" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" -msgstr "Назва ACI" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "не отримано реєстраційних даних Kerberos" -#: ipalib/plugins/aci.py:422 -msgid "Permission" -msgstr "Права доступу" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "У базі даних Kerberos не виявлено служби %(service)r" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" -msgstr "ACI прав доступу надає доступ до" +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "Не знайдено кешу реєстраційних даних" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" -msgstr "Група користувачів" +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "Сплив строк дії квитка" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" -msgstr "Група користувачів, до якої надає доступ ACI" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "Помилкові права доступу до кешу реєстраційних даних" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" -msgstr "Права доступу" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "Помилковий формат кешу реєстраційних даних" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" -msgstr "" -"відокремлений комами список прав доступу, які слід надати (read, write, add," -" delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "Не вдалося визначити KDC для бажаної області (realm)" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" -msgstr "Атрибути" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Недостатні права для доступу: %(info)s" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" -msgstr "Список атрибутів, відокремлених комами" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "команда %(name)r не приймає ніяких аргументів" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "Тип" +#: ipalib/errors.py:664 +#, 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] "команда %(name)r приймає не більше %(count)d аргументу" +msgstr[1] "команда %(name)r приймає не більше %(count)d аргументів" +msgstr[2] "команда %(name)r приймає не більше %(count)d аргументів" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "" -"тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup " -"(група вузлів), service (служба), netgroup (група у мережі))" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "перекриття аргументів і параметрів: %(names)r" -#: ipalib/plugins/aci.py:450 -msgid "Member of" -msgstr "Учасник" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "Слід вказати %(name)r" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" -msgstr "Учасник групи" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "некоректне %(name)r: %(error)s" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" -msgstr "Фільтр" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "api не надає такого простору назв: %(name)r" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Припустимий фільтр LDAP (наприклад, ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "Паролі не збігаються" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" -msgstr "Піддерево" +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "Команду не реалізовано" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" -msgstr "Піддерево, до якого слід застосувати ACI" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "Клієнтську частину не налаштовано. Віддайте команду ipa-client-install." -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" -msgstr "Цільова група" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" -msgstr "Група, до якої слід застосувати ACI" +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "Цей запис вже існує" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" -msgstr "Виконати над власним записом (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "Щоб створити службу вузла, вам слід зареєструвати вузол" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" -msgstr "Застосувати ACI до вашого власного запису (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "Реєстраційний запис служби вказано у формі, відмінній від: служба/повна назва вузла: %(reason)s" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " -msgstr "" -"\n" -" Створити ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" +msgstr "Область дії реєстраційного запису не збігається з областю цього сервера IPA" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" -msgstr "Створено ACI «%(value)s»" +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "Для виконання цієї команди потрібні права доступу користувача root" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" -msgstr "Перевірити синтаксис ACI, але не виконувати запису" +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "Вже є posix-групою" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " -msgstr "" -"\n" -" Виконання дії aci-create.\n" -"\n" -" Повертає запис у форматі, у якому його буде створено у LDAP.\n" -"\n" -" :параметр aciname: назва ACI, яке додається.\n" -" :параметр kw: параметри ключового слова для інших атрибутів LDAP.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "Реєстраційний запис вказано у формі, відмінній від користувач@ОБЛАСТЬ: %(principal)r" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " -msgstr "" -"\n" -" Вилучити ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "Цей запис вже увімкнено" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" -msgstr "Вилучено ACI «%(value)s»" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "Цей запис вже вимкнено" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " -msgstr "" -"\n" -" Виконання дії aci-delete.\n" -"\n" -" :параметр aciname: назва ACI, яке додається.\n" -" :параметр kw: не використовується.\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "Цей запис не можна вмикати або вимикати" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " -msgstr "" -"\n" -" Змінити ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "Цього запису немає серед учасників" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" -msgstr "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "Група не може бути елементом самої себе" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" -msgstr "Змінено ACI «%(value)s»" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" +msgstr "Цей запис вже є серед учасників" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " -msgstr "" -"\n" -" Пошук ACI.\n" -"\n" -" Повертає список ACI\n" -"\n" -" ПРИКЛАДИ:\n" -"\n" -" Щоб знайти всі ACI, які застосовуються безпосередньо до учасників групи ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" Щоб знайти всі ACI, які надають доступ add (додавання):\n" -" ipa aci-find --permissions=add\n" -"\n" -" Зауважте, що команда пошуку лише шукає вказаний текст у вказаному\n" -" наборі ACI, а не виконує обробку ACI для визначення того, що слід застосовувати.\n" -" Наприклад, пошук memberof=ipausers виявить всі ACI, у яких міститься\n" -" ipausers у memberof. Можуть існувати інші ACI, які застосовуються до\n" -" цієї групи опосередковано.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Помилка декодування Base64: %(reason)s" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "встановлено відповідність %(count)d ACI" -msgstr[1] "встановлено відповідність %(count)d ACI" -msgstr[2] "встановлено відповідність %(count)d ACI" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "Групу не може бути додано як елемент самої себе" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " -msgstr "" -"\n" -" Показати окремий ACI за вказаною назвою ACI.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "Не можна вилучати типову групу користувачів" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "Вузол не має відповідного запису DNS A" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "Вилучення керованих груп заборонено. Спочатку групу слід від’єднати." + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "У керованої групи не може бути власних правил для паролів." + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "«%(entry)s» не містить сертифіката." + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "Не вдалося створити закриту групу. Група «%(group)s» вже існує." + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " -msgstr "" -"\n" -" Виконання дії aci-show.\n" -"\n" -" Повертає запис\n" -"\n" -" :параметр uid: назва реєстраційного запису користувача, дані якого слід отримати.\n" -" :параметр kw: не використовується.\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "Під час перевірки виявлено проблему, всі записи учасників %(verb)s: %(exc)s" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s не містить «%(value)s»" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " -msgstr "" -"\n" -" Перейменувати ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "Критерій пошуку не був достатньо точним. Мало бути вказано один критерій, виявлено — %(found)d." -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" -msgstr "Нова назва ACI" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "не виявлено ні команди, ні запису довідки %(topic)r" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" -msgstr "ACI перейменовано на «%(value)s»" +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "зміна конфліктує з іншою внесеною зміною" + +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "змін не внесено" + +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s: %(info)s" + +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "цим запитом перевищено обмеження" + +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "зміну основного ключа заборонено" + +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s: можна використовувати лише одне значення." -#: ipalib/plugins/automount.py:20 +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s: некоректний синтаксис." + +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "Помилковий фільтр пошуку %(info)s" + +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Не вдалося завершити дію з сертифікатом: %(error)s" + +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Помилка форматування сертифіката: %(error)s" + +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "Вже зареєстровано" + +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "Ще не зареєстровано" + +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "Список результатів обрізано. Спробуйте точніше визначити критерії пошуку." + +#: ipalib/frontend.py:821 msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" -msgstr "" -"\n" -"Автоматичне монтування\n" -"\n" -"Зберігає налаштування automount(8) для autofs(8) у IPA.\n" -"\n" -"Основою налаштувань автоматичного монтування є файл налаштувань auto.master.\n" -"Це також основне місце у IPA. Декілька налаштувань auto.master можна\n" -"зберігати у окремих місцях. Місце залежить від реалізації, типовим\n" -"є місце з назвою «default». Наприклад, ви можете створити місця для\n" -"географічної області, поверху, типу тощо.\n" -"\n" -"У автоматичного монтування є три основних типи об’єктів: місця, карти і ключі.\n" -"\n" -"Місце визначає набір карт, прив’язаних у auto.master. За його допомогою\n" -"можна зберігати одразу декілька налаштувань автоматичного монтування. Місце\n" -"саме собою не є дуже цікавим, це просто початок нової карти автоматичного\n" -"монтування.\n" -"\n" -"Карта є наближеним еквівалентом окремого файла автоматичного монтування, у\n" -"ній зберігаються ключі.\n" -"\n" -"Ключ — точка монтування, пов’язана з картою.\n" -"\n" -"Під час створення нового місця автоматично створюються дві карти:\n" -"auto.master і auto.direct. auto.master — коренева карта для всіх карт\n" -"автоматичного монтування місця. auto.direct — типова карта для безпосередніх\n" -"монтувань, її змонтовано до /-.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -"Місця:\n" -"\n" -" Створення нового місця, \"Kyiv\":\n" -" ipa automountlocation-add kyiv\n" -"\n" -" Показ нового місця:\n" -" ipa automountlocation-show kyiv\n" -"\n" -" Пошук доступних місць:\n" -" ipa automountlocation-find\n" -"\n" -" Вилучення іменованого місця автоматичного монтування:\n" -" ipa automountlocation-del kyiv\n" -"\n" -" Показ того, як мають виглядати карти автоматичного монтування, якщо б вони перебували у файловій системі:\n" -" ipa automountlocation-tofiles kyiv\n" -"\n" -" Імпортування вже створених налаштувань до місця:\n" -" ipa automountlocation-import kyiv /etc/auto.master\n" -"\n" -" Спроба імпортування зазнає невдачі, якщо буде знайдено дублікати записів.\n" -" Для неперервної обробки з ігноруванням помилок, скористайтеся\n" -" параметром --continue.\n" -"\n" -"Карти:\n" -"\n" -" Створення карти \"auto.share\":\n" -" ipa automountmap-add kyiv auto.share\n" -"\n" -" Показ нової карти:\n" -" ipa automountmap-show kyiv auto.share\n" -"\n" -" Пошук карт у місці kyiv:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Вилучення карти auto.share:\n" -" ipa automountmap-del kyiv auto.share\n" -"\n" -"Ключі:\n" -"\n" -" Створення ключа для карти auto.share у місці kyiv. Карту буде\n" -" пов’язано з раніше створеною у auto.master:\n" -" ipa automountkey-add kyiv auto.master --key=/share --info=auto.share\n" -"\n" -" Створення ключа для нашої карти auto.share, змонтованого ресурсу NFS для сторінок man:\n" -" ipa automountkey-add kyiv auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Знайти всі ключі для карти auto.share:\n" -" ipa automountkey-find kyiv auto.share\n" -"\n" -" Пошук всіх безпосередніх ключів автоматичного монтування:\n" -" ipa automountkey-find kyiv --key=/-\n" -"\n" -" Вилучення ключа man для карти auto.share:\n" -" ipa automountkey-del kyiv auto.share --key=man\n" - -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " -msgstr "" -"\n" -" Контейнер записів для карт automount.\n" -" " +"Retrieve and print all attributes from the server. Affects command output." +msgstr "Отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" -msgstr "Записи автомонтування" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." +msgstr "Вивести записи у формі, у якій вони зберігаються на сервері. Стосується лише формату виведення даних." -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" -msgstr "Запис" +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "Версія клієнта. Використовується для визначення, якщо сервер приймає запит." -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." -msgstr "Адреса автомонтування." +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "Переспрямувати на сервер замість локального виконання" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " -msgstr "" -"\n" -" Створити новий запис automount.\n" -" " +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "Словник, що відповідає запису LDAP" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " -msgstr "" -"\n" -" Вилучити запис automount.\n" -" " +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "Список записів LDAP" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " -msgstr "" -"\n" -" Показати запис automount.\n" -" " +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "Виконання всіх команд має призводити до якогось результату" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " -msgstr "" -"\n" -" Шукати запис automount.\n" -" " +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "помилковий тип" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " -msgstr "" -"\n" -" Створити файли automount для певної адреси.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "Можна використовувати лише одне значення" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " -msgstr "" -"\n" -" Імпортувати файли automount для певної адреси.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "має дорівнювати True або False" -#: ipalib/plugins/automount.py:314 -msgid "Master file" -msgstr "Основний файл" +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "має бути цілим числом" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." -msgstr "Основний файл automount." +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "має бути числом, не меншим за %(minvalue)d" -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "" -"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує " -"обробку." +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "не може перевищувати %(maxvalue)d" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" -msgstr "Файла %(file)s не знайдено" +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "має бути десятковим числом" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " -msgstr "" -"\n" -" Основна ідея полягає у читанні основного файла і створенні всіх потрібних\n" -" карт з наступним читанням кожного файла карти і додавання всіх ключів до карти.\n" -" " +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" +msgstr "має бути числом, не меншим за %(minvalue)f" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " -msgstr "" -"\n" -" Об’єкт карти автомонтування.\n" -" " +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" +msgstr "не може перевищувати %(maxvalue)f" -#: ipalib/plugins/automount.py:505 -msgid "Map" -msgstr "Карта" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "має відповідати шаблону «%(pattern)s»" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." -msgstr "Назва карти автоматичного монтування." +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "має бути бінарними даними" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "Опис" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "має бути розміром, не менше за %(minlength)d байтів" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" -msgstr "Карти автоматичного монтування" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "не повинне перевищувати за розміром %(maxlength)d байтів" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " -msgstr "" -"\n" -" Створити карту автомонтування.\n" -" " +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "має бути розміром точно у %(length)d байтів" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " -msgstr "" -"\n" -" Вилучити карту автоматичного монтування.\n" -" " +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "має бути текстом у Unicode" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " -msgstr "" -"\n" -" Змінити карту автоматичного монтування.\n" -" " +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "Використання пробілів на початку і у кінці заборонено" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " -msgstr "" -"\n" -" Виконати пошук карти автоматичного монтування.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "має бути не меншим за %(minlength)d символів довжиною" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " -msgstr "" -"\n" -" Показати карту автоматичного монтування.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "не повинне перевищувати %(maxlength)d символів у довжину" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " -msgstr "" -"\n" -" Об’єкт ключа автоматичного монтування.\n" -" " +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "має бути точно %(length)d символів у довжину" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" -msgstr "Ключ" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." +msgstr "Не можна використовувати символ «%(char)r»." -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." -msgstr "Назва ключа автоматичного монтування." - -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" -msgstr "Інформація щодо монтування" - -#: ipalib/plugins/automount.py:597 -msgid "description" -msgstr "опис" - -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" -msgstr "Ключі автомонтування" - -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" -msgstr "" -"Пара ключ,інформація має бути унікальною. Ключ з назвою %(key)s та " -"інформацією %(info)s вже існує." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "має бути одним зі таких значень: %(values)r" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" -msgstr "ключ з назвою %(key)s вже існує" +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" +msgstr "Список значень ACI" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "" -"Ключа автоматичного монтування %(key)s з інформацією %(info)s не існує" +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "type, filter, subtree і targetgroup є взаємовиключними" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." -msgstr "" -"Знайдено декілька записів ключів %(key)s, скористайтеся --info для вибору " -"певного запису." +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" +msgstr "Слід вказати префікс ACI" -#: ipalib/plugins/automount.py:717 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Create a new automount key.\n" -" " -msgstr "" -"\n" -" Створити ключ автоматичного монтування.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "слід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або memberof" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " -msgstr "" -"\n" -" Створити опосередковану точку монтування.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" +msgstr "filter і memberof не можна використовувати разом" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" -msgstr "Точка монтування" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" +msgstr "group, permission і self не можна використовувати разом" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" -msgstr "Батьківська карта" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" +msgstr "Слід вказати одне зі значень, group, permission або self" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." -msgstr "" -"Назва батьківської карти автомонтування (типове значення: auto.master)." +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" +msgstr "Групи з назвою «%s» не існує" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " -msgstr "" -"\n" -" Вилучити ключ автоматичного монтування.\n" -" " +#: ipalib/plugins/aci.py:273 +msgid "empty filter" +msgstr "порожній фільтр" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " -msgstr "" -"\n" -" Змінити ключ автоматичного монтування.\n" -" " +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "Синтаксична помилка: %(error)s" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" -msgstr "Інформація нового монтування" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "Не знайдено ACI з назвою «%s»" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " -msgstr "" -"\n" -" Виконати пошук ключа автоматичного монтування\n" -" " +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" +msgstr "префікс ACI" -#: ipalib/plugins/automount.py:844 +#: ipalib/plugins/aci.py:401 msgid "" -"\n" -" Display an automount key.\n" -" " -msgstr "" -"\n" -" Показати ключ автоматичного монтування.\n" -" " +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "Префікс, за яким визначається тип ACI (permission, delegation, selfservice, none)" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" -msgstr "" -"\n" -"Основні класи додатків LDAP.\n" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" +msgstr "ACI" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" -msgstr "Помилка members" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" +msgstr "Назва ACI" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" -msgstr "Учасник users" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" +msgstr "Права доступу" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" -msgstr "Учасник groups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" +msgstr "ACI прав доступу надає доступ до" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" -msgstr "Учасник груп" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" +msgstr "Група користувачів" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" -msgstr "Учасник hosts" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" +msgstr "Група користувачів, до якої надає доступ ACI" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" -msgstr "Учасник host-groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" +msgstr "Права доступу" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" -msgstr "Учасник host-groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" +msgstr "відокремлений комами список прав доступу, які слід надати (read, write, add, delete, all)" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" -msgstr "Ролі" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" +msgstr "Атрибути" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" -msgstr "Групи команд sudo" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" +msgstr "Список атрибутів, відокремлених комами" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" -msgstr "Надання уповноважень ролям" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" +msgstr "Тип" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" -msgstr "Учасник netgroups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup (група вузлів), service (служба), netgroup (мережева група))" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" -msgstr "Учасник netgroups" +#: ipalib/plugins/aci.py:458 +msgid "Member of" +msgstr "Учасник" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" -msgstr "Учасник services" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" +msgstr "Учасник групи" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" -msgstr "Учасник службових груп" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" +msgstr "Фільтр" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" -msgstr "Учасник груп служб HBAC" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Припустимий фільтр LDAP (наприклад, ou=Engineering)" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" -msgstr "Опосередкований учасник users" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" +msgstr "Піддерево" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" -msgstr "Опосередкований учасник groups" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" +msgstr "Піддерево, до якого слід застосувати ACI" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" -msgstr "Вузли з опосередкованою участю" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" +msgstr "Цільова група" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" -msgstr "Групи вузлів з опосередкованою участю" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" +msgstr "Група, до якої слід застосувати ACI" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" -msgstr "Опосередкований учасник roles" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" +msgstr "Виконати над власним записом (self)" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" -msgstr "Опосередкований учасник permissions" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" +msgstr "Застосувати ACI до вашого власного запису (self)" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" -msgstr "Опосередкований учасник служби HBAC" +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "Створено ACI «%(value)s»" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" -msgstr "Опосередкований учасник групи служб HBAC" +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "Перевірити синтаксис ACI, але не виконувати запису" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" -msgstr "Опосередкований учасник netgroups" +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Вилучено ACI «%(value)s»" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" -msgstr "Зовнішній вузол" +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "ACI" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" -msgstr "Помилка hosts/hostgroups" +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Змінено ACI «%(value)s»" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" -msgstr "Помилка users/groups" +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "встановлено відповідність %(count)d ACI" +msgstr[1] "встановлено відповідність %(count)d ACI" +msgstr[2] "встановлено відповідність %(count)d ACI" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" -msgstr "Помилка managedby" +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "Нова назва ACI" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" -msgstr "Спроба вилучення зазнала невдачі" +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI перейменовано на «%(value)s»" -#: ipalib/plugins/baseldap.py:171 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " -msgstr "" +"Auto Membership Rule.\n" "\n" -" На основі списку значень у форматі назва=значення повернути список назв.\n" -" " - -#: ipalib/plugins/baseldap.py:197 -msgid "" +"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" +"a group or hostgroup based upon attribute information.\n" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " -msgstr "" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" "\n" -" Під час додавання або вилучення зворотних учасників ми виконуємо\n" -" фальшиве оновлення об’єкта A оновленням атрибута учасника об’єкта B.\n" -" Додаток memberof виконує цю роботу додаванням або вилученням атрибута\n" -" об’єкта A, дія триватиме якийсь час.\n" +"EXAMPLES:\n" "\n" -" Цикл отримання об’єкта A виконуватиметься більше 6 секунд, отже ми\n" -" зможемо забезпечити оновлення всіх атрибутів memberof.\n" -" " - -#: ipalib/plugins/baseldap.py:241 -msgid "" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" "\n" -" Object representing a LDAP entry.\n" -" " -msgstr "" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" "\n" -" Об’єкт, якому відповідає запис LDAP.\n" -" " - -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" -msgstr "Запис" - -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" -msgstr "не знайдено запис контейнера (%(container)s)" - -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: не знайдено %(oname)s" - -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: не знайдено %(oname)s" - -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "%(oname)s з назвою «%(pkey)s» вже існує" - -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." -msgstr "" -"Додати пару атрибут/значення. Формат: атрибут=значення. Атрибут має бути " -"частиною схеми." - -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." -msgstr "" -"Встановити атрибут для пари назва/значення. Формат: атрибут=значення.\n" -"Для атрибутів з багатьма значенням команда замінює вже вказані значення." - -#: ipalib/plugins/baseldap.py:444 -msgid "" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" "\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" "\n" -" allow_only tells us what mode to check in:\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" "\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" "\n" -" Якщо набір класів об’єктів обмежено, примусово використати\n" -" лише ті з них, які оновлено у entry_attrs (плюс dn)\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" "\n" -" allow_only повідомляє про режим визначення:\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" "\n" -" Якщо значенням є True, використовувати лише атрибути зі списку\n" -" дозволених.\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" "\n" -" Якщо значенням є False, атрибути буде заборонено.\n" -" " - -#: ipalib/plugins/baseldap.py:474 -msgid "" +" Modify the automember rule:\n" +" ipa automember-mod\n" "\n" -" Callback registration interface\n" -" " -msgstr "" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" "\n" -" Інтерфейс реєстрації зворотних викликів.\n" -" " - -#: ipalib/plugins/baseldap.py:561 -msgid "" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" "\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" "\n" -" Створити запис у LDAP.\n" -" " - -#: ipalib/plugins/baseldap.py:703 -msgid "" +" Find all of the automember rules:\n" +" ipa automember-find\n" "\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " -msgstr "" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" "\n" -" Основний клас для команд, який має отримувати вже створений запис.\n" -" " +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "\nПравило автоматичної участі.\n\nСпрощує визначення участі вузлів і користувачів за допомогою визначених\nвами шаблонів (формальних виразів) включення чи не включення нових записів\nдо груп або груп вузлів на основі даних атрибутів у автоматичному режимі.\n\nПравило напряму пов’язується з групою за назвою, отже ви не можете\nстворювати правила, які не буде пов’язано з групою користувачів чи групою\nвузлів.\nУмовою використання правила є формальний вираз, який використовуватиметься\n389-ds для встановлення відповідності нового вхідного запису з правилом\nавтоматичної участі. Якщо запис відповідатиме правилу включення, його буде\nдодано до відповідної групи або групи вузлів.\n\nПРИКЛАДИ:\n\n Створення початкової групи або групи вузлів:\n ipa hostgroup-add --desc=\"Web Servers\" webservers\n ipa group-add --desc=\"Developers\" devel\n\n Створення початкового правила:\n ipa automember-add --type=hostgroup webservers\n ipa automember-add --type=group devel\n\n Додавання умови до правила:\n ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n\n Додавання умови виключення до правила з метою запобігання\n автоматичному додаванню:\n ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n\n Додавання вузла:\n ipa host-add web1.example.com\n\n Додавання користувача:\n ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n\n Перевірка правила:\n ipa hostgroup-show webservers\n Host-group: webservers\n Description: Web Servers\n Member hosts: web1.example.com\n\n ipa group-show devel\n Group name: devel\n Description: Developers\n GID: 1004200000\n Member users: tuser\n\n Вилучення умови з правила:\n ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n\n Внесення змін до правила автоматичної участі:\n ipa automember-mod\n\n Встановлення типової групи призначення:\n ipa automember-default-group-set --default-group=webservers --type=hostgroup\n ipa automember-default-group-set --default-group=ipausers --type=group\n\n Вилучення типової групи призначення:\n ipa automember-default-group-remove --type=hostgroup\n ipa automember-default-group-remove --type=group\n\n Показати типову групу призначення:\n ipa automember-default-group-show --type=hostgroup\n ipa automember-default-group-show --type=group\n\n Знайти всі правила автоматичної участі:\n ipa automember-find\n\n Показати правило автоматичної участі:\n ipa automember-show --type=hostgroup webservers\n ipa automember-show --type=group devel\n\n Вилучити правило автоматичної участі:\n ipa automember-del --type=hostgroup webservers\n ipa automember-del --type=group devel\n" + +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "Формальний вираз включення" + +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "Формальний вираз виключення" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "Ключ атрибута" -#: ipalib/plugins/baseldap.py:727 +#: ipalib/plugins/automember.py:128 msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " -msgstr "" -"\n" -" Основний клас для команд, який має отримувати один або декілька вже створених записів.\n" -" " +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "Атрибут для фільтрування за формальним виразом. Приклад: fqdn для вузла або manager для користувача" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." -msgstr "Режим неперервної роботи: не зупинятися у разі помилок." +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "Тип групування" + +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "Групування, якого стосується правило" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "Правило автоматичної участі" + +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" +msgstr "Правило автоматичної участі" + +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "Опис" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "Опис цього правила автоматичної участі" + +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "Типова група" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "Типова група для записів" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" +msgstr "Група: %s не знайдено!" + +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s не є коректним атрибутом." + +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" -" " -msgstr "" -"\n" -" Отримати запис LDAP.\n" +" Add an automember rule.\n" " " +msgstr "\n Додати правило автоматичної участі.\n " -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" -msgstr "Права" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "Додано правило автоматичної участі «%(value)s»" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." -msgstr "" -"Показати права доступу цього запису (потребує --all). Докладніше про це " -"можна дізнатися зі сторінки довідника (man) ipa." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" +msgstr "Автоматичну участь не налаштовано" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" -" " -msgstr "" -"\n" -" Оновити запис LDAP.\n" +" Add conditions to an automember rule.\n" " " +msgstr "\n Додати умови до правила автоматичної участі.\n " -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" -msgstr "Перейменувати" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "Не вдалося додати" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" -msgstr "Перейменувати об’єкт %(ldap_obj_name)s" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "Додано умови до «%(value)s»" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" -msgstr "запис було вилучено під час внесення змін" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "Умови, які не вдалося додати" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " -msgstr "" -"\n" -" Вилучити запис LDAP і всі його безпосередні підзаписи.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "Кількість доданих умов" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "Правило автоматичної участі: %s не знайдено!" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " -msgstr "" -"\n" -" Основний клас для керування учасниками.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " +msgstr "\n Перевизначення з метою додавання у повернуте повідомлення даних щодо успіху чи невдачі.\n " -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" -" " -msgstr "" -"\n" -" Додати інші записи LDAP до members.\n" +" Remove conditions from an automember rule.\n" " " +msgstr "\n Вилучити умови з правила автоматичної участі.\n " -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" -msgstr "Учасники, записи яких не вдалося додати" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" +msgstr "Вилучено умови з «%(value)s»" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" -msgstr "Кількість доданих учасників" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "Умови, які не вдалося вилучити" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "Кількість вилучених умов" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " -msgstr "" +" Override this so we can set completed and failed.\n" +" " +msgstr "\n Перевизначення з метою встановлення станів успіху та невдачі.\n " + +#: ipalib/plugins/automember.py:434 +msgid "" "\n" -" Вилучити записи LDAP з members.\n" +" Modify an automember rule.\n" " " +msgstr "\n Змінити правило автоматичної участі.\n " -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" -msgstr "Учасники, записи яких не вдалося вилучити" - -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" -msgstr "Кількість вилучених учасників" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "Змінено правило автоматичної участі «%(value)s»" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " -msgstr "" -"\n" -" Отримати всі записи LDAP, що відповідають вказаним критеріям.\n" +" Delete an automember rule.\n" " " +msgstr "\n Вилучити правило автоматичної участі.\n " -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "Обмеження часу" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" -msgstr "Обмеження часу пошуку у секундах" - -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" -msgstr "Обмеження розміру" - -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "Максимальна кількість повернутих записів" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "Вилучено правило автоматичної участі «%(value)s»" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:466 msgid "" "\n" -" Base class for reverse member manipulation.\n" -" " -msgstr "" -"\n" -" Основний клас для зворотного керування учасниками.\n" +" Search for automember rules.\n" " " +msgstr "\n Шукати правила автоматичної участі.\n " + +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "встановлено відповідність %(count)d правила" +msgstr[1] "встановлено відповідність %(count)d правил" +msgstr[2] "встановлено відповідність %(count)d правил" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Display information about an automember rule.\n" " " -msgstr "" -"\n" -" Додати інші записи LDAP до members у зворотному порядку.\n" +msgstr "\n Показати дані щодо правила автоматичної участі.\n " + +#: ipalib/plugins/automember.py:502 +msgid "" "\n" -" Виклик виглядатиме як «додати A до B», але фактично буде виконано\n" -" додавання B до A з метою обробки зворотної участі.\n" +" Set default group for all unmatched entries.\n" " " +msgstr "\n Встановити типову групу для невідповідних записів.\n " -#: ipalib/plugins/baseldap.py:1654 -msgid "added" -msgstr "додано" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" +msgstr "Встановити типову групу для автоматичної участі «%(value)s»" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " -msgstr "" -"\n" -" Вилучити інші записи LDAP з members у зворотному порядку.\n" -"\n" -" Виклик виглядатиме як «вилучити A зо B», але фактично буде виконано\n" -" вилучення B з A з метою обробки зворотної участі.\n" +" Remove default group for all unmatched entries.\n" " " +msgstr "\n Вилучити типову групу для невідповідних записів.\n " -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" -msgstr "вилучено" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "Вилучити типову групу для автоматичної участі «%(value)s»" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "Не встановлено типової групи" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +" Display information about the default automember groups.\n" +" " +msgstr "\n Показати дані щодо типових груп автоматичної участі.\n " + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" +"Automount\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -msgstr "" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"Додаток для створення декількох викликів ipa за допомогою одного віддаленого виклику\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"Для виконання цього коду у lite-server:\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"де вміст файла batch_request.json відповідний до наведеного нижче прикладу:\n" +"A key is a mount point associated with a map.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"Формат відповіді має той самий формат вкладеності. У верхній частині:\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"EXAMPLES:\n" "\n" +"Locations:\n" "\n" -"А далі вкладена відповідь для кожного з методів команд IPA, надісланого у запиті\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "Вкладені методи, які слід виконати" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" -"Версія клієнта. Використовується для визначення, якщо сервер приймає запит." - -#: ipalib/plugins/cert.py:22 -msgid "" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"IPA certificate operations\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -"In order to request a certificate:\n" +"Maps:\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -"EXAMPLES:\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +"Keys:\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" -msgstr "" -"\n" -"Дії з сертифікатами IPA\n" -"\n" -"Реалізує набір команд для керування сертифікатами серверів SSL.\n" -"\n" -"Запити щодо сертифікатів існують у формі Certificate Signing Request (CSR)\n" -"і форматі PEM.\n" -"\n" -"Якщо використовується автопідписний модуль, призначення CSR має збігатися\n" -"з призначенням на сервері. Служба сертифікації використовує лише CN\n" -"CSR і примусово визначає призначення.\n" -"\n" -"Сертифікат зберігається з реєстраційним записом, а реєстраційний запис\n" -"потребує вузла.\n" -"\n" -"Для того, щоб створити запит щодо сертифіката:\n" -"\n" -"* Вузол має існувати\n" -"* Служба має існувати (або слід скористатися параметром --add для\n" -"автоматичного додавання)\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Створити запит щодо нового сертифіката і додати реєстраційний запис:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Отримати вже створений сертифікат:\n" -" ipa cert-show 1032\n" -"\n" -" Відкликати сертифікат (причини визначено у RFC 5280):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Вилучити сертифікат зі списку відкликання:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Перевірити стан запиту щодо підписування:\n" -" ipa cert-status 10\n" -"\n" -"У поточній версії IPA негайно виконує (або відхиляє) всі запити щодо\n" -"сертифікатів, отже дані щодо стану запиту не мають сенсу. Ці дані\n" -"можуть знадобитися у наступних версіях або у разі, якщо CA видає\n" -"сертифікат не одразу.\n" -"\n" -"Передбачено підтримку таких причин відкликання:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Зауважте, що коди причини 7 не використовується. Докладніші дані у RFC 5280:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" +msgstr "\nАвтоматичне монтування\n\nЗберігає налаштування automount(8) для autofs(8) у IPA.\n\nОсновою налаштувань автоматичного монтування є файл налаштувань auto.master.\nЦе також основне місце у IPA. Декілька налаштувань auto.master можна\nзберігати у окремих місцях. Місце залежить від реалізації, типовим\nє місце з назвою «default». Наприклад, ви можете створити місця для\nгеографічної області, поверху, типу тощо.\n\nУ автоматичного монтування є три основних типи об’єктів: місця, карти і ключі.\n\nМісце визначає набір карт, прив’язаних у auto.master. За його допомогою\nможна зберігати одразу декілька налаштувань автоматичного монтування. Місце\nсаме собою не є дуже цікавим, це просто початок нової карти автоматичного\nмонтування.\n\nКарта є наближеним еквівалентом окремого файла автоматичного монтування, у\nній зберігаються ключі.\n\nКлюч — точка монтування, пов’язана з картою.\n\nПід час створення нового місця автоматично створюються дві карти:\nauto.master і auto.direct. auto.master — коренева карта для всіх карт\nавтоматичного монтування місця. auto.direct — типова карта для безпосередніх\nмонтувань, її змонтовано до /-.\n\nПРИКЛАДИ:\n\nМісця:\n\n Створення нового місця, \"Kyiv\":\n ipa automountlocation-add kyiv\n\n Показ нового місця:\n ipa automountlocation-show kyiv\n\n Пошук доступних місць:\n ipa automountlocation-find\n\n Вилучення іменованого місця автоматичного монтування:\n ipa automountlocation-del kyiv\n\n Показ того, як мають виглядати карти автоматичного монтування, якщо б вони перебували у файловій системі:\n ipa automountlocation-tofiles kyiv\n\n Імпортування вже створених налаштувань до місця:\n ipa automountlocation-import kyiv /etc/auto.master\n\n Спроба імпортування зазнає невдачі, якщо буде знайдено дублікати записів.\n Для неперервної обробки з ігноруванням помилок, скористайтеся\n параметром --continue.\n\nКарти:\n\n Створення карти \"auto.share\":\n ipa automountmap-add kyiv auto.share\n\n Показ нової карти:\n ipa automountmap-show kyiv auto.share\n\n Пошук карт у місці kyiv:\n ipa automountmap-find baltimore\n\n Вилучення карти auto.share:\n ipa automountmap-del kyiv auto.share\n\nКлючі:\n\n Створення ключа для карти auto.share у місці kyiv. Карту буде\n пов’язано з раніше створеною у auto.master:\n ipa automountkey-add kyiv auto.master --key=/share --info=auto.share\n\n Створення ключа для нашої карти auto.share, змонтованого ресурсу NFS для сторінок man:\n ipa automountkey-add kyiv auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n\n Знайти всі ключі для карти auto.share:\n ipa automountkey-find kyiv auto.share\n\n Пошук всіх безпосередніх ключів автоматичного монтування:\n ipa automountkey-find kyiv --key=/-\n\n Вилучення ключа man для карти auto.share:\n ipa automountkey-del kyiv auto.share --key=man\n" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " -msgstr "" -"\n" -" Повернути значення НС у призначенні запиту або None\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "запис автомонтування" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" -msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR):" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" +msgstr "записи автомонтування" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " -msgstr "" -"\n" -" Повернути перше значення альтернативної назви призначення, якщо така є\n" -" " +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" +msgstr "Записи автомонтування" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" -msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR)" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "Запис автомонтування" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " -msgstr "" -"\n" -" Забезпечити base64-кодування для CSR і можливість декодування нашимn інструментом обробки PKCS#10.\n" -" " +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" +msgstr "Запис" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "" -"Помилка під час декодування запиту на підписування сертифіката (CSR): %s" +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." +msgstr "Адреса автомонтування." -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" -"\n" -" Вилучити початковий і завершальний мотлох у блоці BEGIN/END\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." +msgstr "Створити новий запис автоматичного монтування." -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " -msgstr "" -"\n" -" Перетворити СН у десяткову або шістнадцяткову форму.\n" -" Повертає число або None, якщо перетворення зазнає невдачі.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Додано місце автоматичного монтування «%(value)s»" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " -msgstr "" -"\n" -" За вказаним реєстраційним записом без або з областю дії повернути\n" -" дані вузла.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." +msgstr "Вилучити запис автоматичного монтування." -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " -msgstr "" -"\n" -" Надіслати запит щодо підписування сертифіката.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Вилучено місце автоматичного монтування «%(value)s»" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" -msgstr "Реєстраційний запис" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." +msgstr "Показати запис автоматичного монтування." -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" -"Реєстраційний запис служби для цього сертифіката (наприклад " -"HTTP/test.example.com)" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." +msgstr "Шукати запис автоматичного монтування." -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" -msgstr "автоматично додати реєстраційний запис, якщо його не існує" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "встановлено відповідність %(count)d місця автоматичного монтування" +msgstr[1] "встановлено відповідність %(count)d місця автоматичного монтування" +msgstr[2] "встановлено відповідність %(count)d місць автоматичного монтування" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "Сертифікат" +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "Створити файли automount для певної адреси." -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" -msgstr "Об’єкт" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." +msgstr "Імпортувати файли automount для певної адреси." -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" -msgstr "Видавець" +#: ipalib/plugins/automount.py:323 +msgid "Master file" +msgstr "Основний файл" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" -msgstr "Не раніше" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." +msgstr "Основний файл automount." -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" -msgstr "Не пізніше" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." +msgstr "Режим неперервної обробки. Програма повідомляє про помилки, але продовжує обробку." -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" -msgstr "Відбиток (MD5)" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" +msgstr "Файла %(file)s не знайдено" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" -msgstr "Відбиток (SHA1)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" +msgstr "карта автомонтування" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" -msgstr "Серійний номер" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" +msgstr "карти автоматичного монтування" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" -msgstr "Відображення назви змінної на значення за словником" +#: ipalib/plugins/automount.py:520 +msgid "Map" +msgstr "Карта" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " -msgstr "" -"\n" -" Перевірити стан запиту щодо підписування сертифіката.\n" -" " +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." +msgstr "Назва карти автоматичного монтування." -#: ipalib/plugins/cert.py:402 -msgid "Request id" -msgstr "Ід. запиту" +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" +msgstr "Карти автоматичного монтування" -#: ipalib/plugins/cert.py:408 -msgid "Request status" -msgstr "Стан запиту" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" +msgstr "Карта автомонтування" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "Серійний десятковий номер або шістнадцятковий номер з префіксом 0x" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." +msgstr "Створити карту автомонтування." -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " -msgstr "" -"\n" -" Отримати вже створений сертифікат.\n" -" " +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "Додано карту автоматичного монтування «%(value)s»" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" -msgstr "Причина відкликання" +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." +msgstr "Вилучити карту автоматичного монтування." -#: ipalib/plugins/cert.py:466 -msgid "Output filename" -msgstr "Назва файла виводу" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "Вилучено карту автоматичного монтування «%(value)s»" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." -msgstr "Файл, у якому зберігатимуться дані сертифіката." +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "Змінити карту автоматичного монтування." -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " -msgstr "" -"\n" -" Відкликати сертифікат.\n" -" " +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "Змінено карту автоматичного монтування «%(value)s»" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" -msgstr "Анульований" +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "Виконати пошук карти автоматичного монтування." -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "Підстава" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "встановлено відповідність %(count)d карти автоматичного монтування" +msgstr[1] "встановлено відповідність %(count)d карти автоматичного монтування" +msgstr[2] "встановлено відповідність %(count)d карт автоматичного монтування" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "Показати карту автоматичного монтування." + +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "Об’єкт ключа автоматичного монтування." + +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "ключ автомонтування" + +#: ipalib/plugins/automount.py:595 +msgid "automount keys" +msgstr "ключі автомонтування" + +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" +msgstr "Ключ" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "Причина відкликання сертифіката (0-10)" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." +msgstr "Назва ключа автоматичного монтування." -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " -msgstr "" -"\n" -" Забрати відкликаний сертифікат.\n" -" " +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" +msgstr "Інформація щодо монтування" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" -msgstr "Відкликання скасовано" +#: ipalib/plugins/automount.py:615 +msgid "description" +msgstr "опис" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "Помилка" +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "Ключі автомонтування" -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "Ключ автомонтування" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" -msgstr "" -"\n" -"Керування налаштуваннями IPA\n" -"\n" -"Керування типовими значеннями, які використовує IPA, і деякими параметрами.\n" -"\n" -" Показати поточні налаштування:\n" -" ipa config-show\n" -"\n" -" Внести зміни до налаштувань:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"Можливі параметри:\n" -"\n" -"Параметри керування користувачами:\n" -"\n" -" --maxusername=INT Макс. довжина імені для створення запису користувача\n" -" --homedirectory=STR Типове розташування домашніх каталогів (типово /home)\n" -" --defaultshell=STR Типова оболонка для нових користувачів (типово /bin/sh)\n" -" --defaultgroup=STR Типова група для нових користувачів (типово ipausers).\n" -" Група має існувати, інакше додавання не спрацює.\n" -" --emaildomain=STR Типовий домен ел. пошти для нових користувачів\n" -"\n" -"Параметри налаштування пошуку. Впливають на діапазон пошуку і кількість записів,\n" -"які буде повернуто у відповідь на запит щодо пошуку.\n" -"\n" -" --searchtimelimit=INT Макс. тривалість (у сек.) для пошуку (> 0 або -1, якщо\n" -" не обмежено)\n" -" --searchrecordslimit=INT Максимальна кількість записів для пошуку (-1 — не\n" -" обмежено)\n" -"\n" -"Налаштування сервера.\n" -"\n" -" --enable-migration=BOOL вмикання режиму перенесення\n" -" --pwdexpnotify=INT випередження сповіщення щодо строку дії пароля\n" -" (у днях)\n" -"\n" -"Значення сповіщення щодо пароля зберігається тут, отже його буде просто\n" -"повторено. Це значення у поточній версії не використовується для сповіщення\n" -"перед завершення строку дії пароля.\n" -"\n" -"Деякі з атрибутів можна лише читати, їх призначено лише з метою інформування.\n" -"Серед цих атрибутів:\n" -"\n" -"Основа призначення сертифікації: налаштована основа призначення сертифікації,\n" -" наприклад O=EXAMPLE.COM. Налаштувати можна лише під час встановлення.\n" -"Можливості додатка паролів: у поточній версії визначається додатковими хешами,\n" -" які буде створено за паролем (можуть бути інші умови).\n" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "Пара ключ,інформація має бути унікальною. Ключ з назвою %(key)s та інформацією %(info)s вже існує." -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." -msgstr "searchtimelimit повинен мати значення -1 або > 1." +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" +msgstr "ключ з назвою %(key)s вже існує" -#: ipalib/plugins/config.py:80 +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "Ключа автоматичного монтування %(key)s з інформацією %(info)s не існує" + +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" -"\n" -" IPA configuration object\n" -" " -msgstr "" -"\n" -" Об’єкт налаштування IPA\n" -" " +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "Знайдено декілька записів ключів %(key)s, скористайтеся --info для вибору певного запису." -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" -msgstr "Налаштування" +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." +msgstr "Створити ключ автоматичного монтування." -#: ipalib/plugins/config.py:96 -msgid "Max. username length" -msgstr "Макс. довжина імені користувача" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "Додано ключ автоматичного монтування «%(value)s»" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" -msgstr "Адреса домашніх каталогів" +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "Створити опосередковану точку монтування." -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." -msgstr "Типова адреса домашніх каталогів." +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "Додано опосередковану карту автоматичного монтування «%(value)s»" -#: ipalib/plugins/config.py:106 -msgid "Default shell" -msgstr "Типова оболонка" +#: ipalib/plugins/automount.py:768 +msgid "Mount point" +msgstr "Точка монтування" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." -msgstr "Типова оболонка для нових користувачів." +#: ipalib/plugins/automount.py:772 +msgid "Parent map" +msgstr "Батьківська карта" -#: ipalib/plugins/config.py:111 -msgid "Default users group" -msgstr "Типова група користувачів" +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." +msgstr "Назва батьківської карти автомонтування (типове значення: auto.master)." -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." -msgstr "Типова група для нових користувачів." +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." +msgstr "Вилучити ключ автоматичного монтування." -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" -msgstr "Типовий домен електронної пошти для нових користувачів" +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "Вилучено ключ автоматичного монтування «%(value)s»" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." -msgstr "Типовий домен електронної пошти для нових користувачів." +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." +msgstr "Змінити ключ автоматичного монтування." -#: ipalib/plugins/config.py:121 -msgid "Search time limit" -msgstr "Обмеження часу пошуку" +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "Змінено ключ автоматичного монтування «%(value)s»" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." -msgstr "" -"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку " -"(>0, -1 — без обмежень)." +#: ipalib/plugins/automount.py:846 +msgid "New mount information" +msgstr "Інформація нового монтування" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" -msgstr "Обмеження розміру пошуку" +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." +msgstr "Виконати пошук ключа автоматичного монтування." -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." -msgstr "Максимальна кількість записів результатів пошуку (-1 — без обмежень)." +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "встановлено відповідність %(count)d ключа автоматичного монтування" +msgstr[1] "встановлено відповідність %(count)d ключі автоматичного монтування" +msgstr[2] "встановлено відповідність %(count)d ключів автоматичного монтування" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." +msgstr "Показати ключ автоматичного монтування." + +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "Пароль" -#: ipalib/plugins/config.py:133 -msgid "User search fields" -msgstr "Поля пошуку користувачів" +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" +msgstr "Помилка members" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." -msgstr "" -"Відокремлений комами список полів, за якими виконуватиметься пошук " -"користувачів." +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" +msgstr "Учасник users" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." -msgstr "" -"Відокремлений комами список полів, за якими виконуватиметься пошук груп." +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" +msgstr "Учасник groups" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "Режим міграції" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" +msgstr "Учасник груп" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." -msgstr "Увімкнути режим міграції." +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" +msgstr "Учасник hosts" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" -msgstr "Базовий об’єкт сертифікації" +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" +msgstr "Учасник host-groups" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." -msgstr "" -"Основа для створення записів об’єктів сертифікації (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" +msgstr "Учасник host-groups" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" -msgstr "Типові класи об’єктів групи" +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" +msgstr "Ролі" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." -msgstr "Типові класи об’єктів групи (список значень, відокремлених комами)." +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" +msgstr "Групи команд sudo" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" -msgstr "Типові класи об’єктів користувачів" +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" +msgstr "Надання уповноважень ролям" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." -msgstr "" -"Типові класи об’єктів користувачів (список значень, відокремлених комами)." +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" +msgstr "Мережеві групи учасника" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" -msgstr "Сповіщення про вичерпання строку дії пароля" +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" +msgstr "Учасник мережевих груп" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." -msgstr "" -"Сповіщення про кількість днів, які залишилися до завершення дії пароля." +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" +msgstr "Служби учасника" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" -msgstr "Можливості додатка паролів" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" +msgstr "Групи служб учасника" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." -msgstr "Додаткові хеші для створення у додатку паролів." +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "Служба HBAC учасника" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " -msgstr "" -"\n" -" Змінити параметри налаштування.\n" -" " +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" +msgstr "Групи служб HBAC учасника" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " -msgstr "" -"\n" -" Показати поточні налаштування.\n" -" " +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" +msgstr "Опосередковані користувачі учасника" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" -msgstr "" -"\n" -"Міжгрупові уповноваження\n" -"\n" -"Права доступу визначають точне уповноваження щодо виконання дій. Правила\n" -"керування доступом (ACL) або команди (ACI) надають доступ до виконання\n" -"завдань з додавання користувача, зміни групи тощо.\n" -"\n" -"Міжгрупові уповноваження надають права учасникам однієї групи набір прав\n" -"доступу іншої групи.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання правила уповноваження, які дозволять редакторам редагувати адреси\n" -" адміністраторів:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Під час керування списком атрибутів вам слід включити до списку всі атрибути,\n" -" зокрема вже створені. Додавання поштового індексу (postalCode) до списку:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Показ нашого оновленого правила:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Вилучення правила:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" +msgstr "Опосередковані групи учасника" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " -msgstr "" -"\n" -" memberOf є у фільтрі, але нам потрібно отримати групу для\n" -" спрощення показу.\n" -" " +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" +msgstr "Вузли з опосередкованою участю" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" -msgstr "Уповноваження «%(permission)s» не знайдено" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" +msgstr "Групи вузлів з опосередкованою участю" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" -msgstr "Помилка під час отримання групи учасників %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" +msgstr "Опосередкований учасник roles" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " -msgstr "" -"\n" -" Визначити, чи є ACI ACI уповноваження і повідомити про виключення, якщо\n" -" він не є ACI уповноваження.\n" -"\n" -" Повернути результат, якщо буде виявлено ACI уповноваження, з додаванням\n" -" нового атрибута membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" +msgstr "Опосередковані права доступу учасника" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " -msgstr "" -"\n" -" Об’єкт уповноваження.\n" -" " +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" +msgstr "Опосередкована служба HBAC учасника" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" -msgstr "Уповноваження" +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" +msgstr "Опосередкована група служб HBAC учасника" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" -msgstr "Назва уповноваження" +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" +msgstr "Опосередковані мережеві групи учасника" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." -msgstr "" -"Відокремлений комами список прав доступу, які слід надати (read, write). " -"Типовим є write." +#: ipalib/plugins/baseldap.py:148 +msgid "External host" +msgstr "Зовнішній вузол" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" -msgstr "Учасник групи користувачів" +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" +msgstr "Помилка hosts/hostgroups джерела" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" -msgstr "Група користувачів, до якої слід застосувати уповноваження" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" +msgstr "Помилка hosts/hostgroups" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " -msgstr "" -"\n" -" Додати нове уповноваження.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" +msgstr "Помилка users/groups" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" -msgstr "Додано уповноваження «%(value)s»" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" +msgstr "Помилки служб/груп служб" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " -msgstr "" -"\n" -" Вилучити уповноваження.\n" -" " +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" +msgstr "Помилка managedby" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" -msgstr "Вилучено уповноваження «%(value)s»" +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" +msgstr "Спроба вилучення зазнала невдачі" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " -msgstr "" -"\n" -" Змінити уповноваження.\n" -" " +#: ipalib/plugins/baseldap.py:306 +msgid "entry" +msgstr "запис" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" -msgstr "Змінено уповноваження «%(value)s»" +#: ipalib/plugins/baseldap.py:307 +msgid "entries" +msgstr "записи" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " -msgstr "" -"\n" -" Пошук уповноважень.\n" -" " +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" +msgstr "Запис" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "встановлено відповідність %(count)d уповноваження" -msgstr[1] "встановлено відповідність %(count)d уповноваження" -msgstr[2] "встановлено відповідність %(count)d уповноважень" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "не знайдено запис контейнера (%(container)s)" + +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: не знайдено %(oname)s" + +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: не знайдено %(oname)s" + +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "%(oname)s з назвою «%(pkey)s» вже існує" -#: ipalib/plugins/delegation.py:250 +#: ipalib/plugins/baseldap.py:632 msgid "" -"\n" -" Display information about a delegation.\n" -" " -msgstr "" -"\n" -" Показати дані щодо уповноваження.\n" -" " +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." +msgstr "Встановити атрибут для пари назва/значення. Формат: атрибут=значення.\nДля атрибутів з багатьма значенням команда замінює вже вказані значення." -#: ipalib/plugins/dns.py:20 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" -msgstr "" -"\n" -"Система назв доменів (DNS)\n" -"\n" -"Керування записами зон DNS та ресурсів.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання нової зони:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Додати другий сервер назв для example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Додати поштовий сервер для example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Вилучити раніше доданий сервер назв з example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Додати новий запис A для www.example.com: (випадковий IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Додати новий запис PTR для www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Додати нові записи SRV для серверів LDAP. Три чверті запитів\n" -" мають надходити до fast.example.com, одна чверть — до slow.example.com.\n" -" Якщо обидва недоступні, перемкнутися на backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" Якщо команда dnsrecord-add виконується без параметрів для додавання запису,\n" -" запускається інтерактивний режим. У цьому режимі програма надсилає запити\n" -" щодо найтиповіших записів відповідної зони:\n" -" ipa dnsrecord-add example.com www\n" -" [A запис]: 1.2.3.4,11.22.33.44 (2 інтерактивно вказаних випадкових IP)\n" -" [AAAA запис]: (адресу AAAA не введено)\n" -" Назва запису: www\n" -" A запис: 1.2.3.4, 11.22.33.44\n" -"\n" -" Крім того, інтерактивним режимом можна скористатися для вилучення записів DNS:\n" -" ipa dnsrecord-del example.com www\n" -" Вилучення певних ресурсів не передбачено.\n" -" Вилучити всі? Так/Ні (типово Ні): (не вилучати всі записи)\n" -" Поточний вміст запису DNS:\n" -"\n" -" A-запис: 1.2.3.4, 11.22.33.44\n" -"\n" -" Вилучити A запис '1.2.3.4'? Так/Ні (типово Ні): \n" -" Вилучити A запис '11.22.33.44'? Так/Ні (типово Ні): y\n" -" Назва запису: www\n" -" A запис: 1.2.3.4 (A запис 11.22.33.44 було вилучено)\n" -"\n" -" Показ зони example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Знайти зону з \"example\" у назві домену:\n" -" ipa dnszone-find example\n" -"\n" -" Знайти записи для ресурсів з \"www\" у назві у зоні example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Показ записів з ресурсу www у зоні example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Вилучення зони example.com з усіма записами ресурсів:\n" -" ipa dnszone-del example.com\n" -"\n" -" Визначити назву вузла для перевірки існування (додасть типовий домен IPA,\n" -" якщо такий включено):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" - -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." -msgstr "Створити серійний номер для зон." - -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " -msgstr "див. RFC 2915 " - -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" -msgstr "Сервер назв «%(host)s» не має відповідного запису A/AAAA" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." +msgstr "Додати пару атрибут/значення. Формат: атрибут=значення. Атрибут має бути\nчастиною схеми." -#: ipalib/plugins/dns.py:272 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " -msgstr "" -"\n" -" Зона DNS, контейнер записів ресурсів.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." +msgstr "Вилучити парну атрибут-значення. Цей параметр буде використано\nостаннім, після всіх встановлень і додавань." -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." +msgstr "Режим неперервної роботи: не зупинятися у разі помилок." -#: ipalib/plugins/dns.py:289 -msgid "Zone name" -msgstr "Назва зони" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" +msgstr "Права" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" -msgstr "Назва зони (FQDN)" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." +msgstr "Показати права доступу цього запису (потребує --all). Докладніше про це можна дізнатися зі сторінки довідника (man) ipa." -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" -msgstr "Основний сервер назв" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" +msgstr "Перейменувати" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." -msgstr "Основний сервер назв." +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Перейменувати об’єкт %(ldap_obj_name)s" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" -msgstr "Адреса електронної пошти адміністратора" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" +msgstr "запис було вилучено під час внесення змін" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" -msgstr "Серійний номер SOA" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" +msgstr "список значень %s, відокремлених комами" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" -msgstr "Серійний номер запису SOA" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" +msgstr "%s учасника" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" -msgstr "Освіження SOA" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" +msgstr "відокремлений комами список значень %s, які слід додати" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" -msgstr "Час оновлення запису SOA" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" +msgstr "Учасники, записи яких не вдалося додати" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" -msgstr "Повторення спроби SOA" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" +msgstr "Кількість доданих учасників" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" -msgstr "Проміжок між повторними спробами для запису SOA" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" +msgstr "список записів %s, відокремлених комами, які слід вилучити" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" -msgstr "Застарівання SOA" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" +msgstr "Учасники, записи яких не вдалося вилучити" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" -msgstr "Час завершення строку дії запису SOA" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" +msgstr "Кількість вилучених учасників" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" -msgstr "Мінімальний SOA" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." +msgstr "Шукати %s з цими %s %s." -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" -msgstr "Тривалість кешування відмов" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." +msgstr "Шукати %s без цих %s %s." -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" -msgstr "Строк дії SOA" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" +msgstr "Обмеження часу" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" -msgstr "Час життя запису SOA" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" +msgstr "Обмеження часу пошуку у секундах" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" -msgstr "Клас SOA" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" +msgstr "Обмеження розміру" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" -msgstr "Клас записів SOA" +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" +msgstr "Максимальна кількість повернутих записів" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" -msgstr "Правила оновлення BIND" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" +msgstr "Лише первинний ключ" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" -msgstr "Активна зона" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "Результати мають містити лише атрибут основного ключа («%s»)" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" -msgstr "Чи є зона активною?" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" +msgstr "додано" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" -msgstr "Динамічне оновлення" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" +msgstr "вилучено" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." -msgstr "Дозволити динамічні оновлення." +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" +msgstr "Вкладені методи, які слід виконати" -#: ipalib/plugins/dns.py:382 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Create new DNS zone (SOA record).\n" -" " -msgstr "" +"IPA certificate operations\n" "\n" -" Створити зону DNS (запис SOA).\n" -" " - -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" -msgstr "Примусово" - -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." -msgstr "Примусово створити зону DNS, навіть якщо сервера назв немає у DNS." - -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" -msgstr "Додати запис сервера назв до DNS з цією IP-адресою" - -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" -msgstr "DNS не налаштовано" - -#: ipalib/plugins/dns.py:431 -msgid "" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Delete DNS zone (SOA record).\n" -" " -msgstr "" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" "\n" -" Вилучити зону DNS (запис SOA).\n" -" " - -#: ipalib/plugins/dns.py:439 -msgid "" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" "\n" -" Modify DNS zone (SOA record).\n" -" " -msgstr "" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" "\n" -" Змінити зону DNS (запис SOA).\n" -" " - -#: ipalib/plugins/dns.py:452 -msgid "" +"In order to request a certificate:\n" "\n" -" Search for DNS zones (SOA records).\n" -" " -msgstr "" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" "\n" -" Пошук зон DNS (записів SOA).\n" -" " - -#: ipalib/plugins/dns.py:460 -msgid "" +"EXAMPLES:\n" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" "\n" -" Показати дані щодо зони DNS (запису SOA).\n" -" " - -#: ipalib/plugins/dns.py:468 -msgid "" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" "\n" -" Disable DNS Zone.\n" -" " -msgstr "" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" "\n" -" Вимкнути зону DNS.\n" -" " - -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" -msgstr "Вимкнено зону DNS «%(value)s»" - -#: ipalib/plugins/dns.py:490 -msgid "" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" "\n" -" Enable DNS Zone.\n" -" " -msgstr "" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" "\n" -" Увімкнути зону DNS.\n" -" " - -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" -msgstr "Увімкнено зону DNS «%(value)s»" - -#: ipalib/plugins/dns.py:512 -msgid "" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" "\n" -" DNS record.\n" -" " -msgstr "" +"The following revocation reasons are supported:\n" "\n" -" Запис DNS.\n" -" " +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" +msgstr "\nДії з сертифікатами IPA\n\nРеалізує набір команд для керування сертифікатами серверів SSL.\n\nЗапити щодо сертифікатів існують у формі Certificate Signing Request (CSR)\nі форматі PEM.\n\nЯкщо використовується автопідписний модуль, призначення CSR має збігатися\nз призначенням на сервері. Служба сертифікації використовує лише CN\nCSR і примусово визначає призначення.\n\nСертифікат зберігається з реєстраційним записом, а реєстраційний запис\nпотребує вузла.\n\nДля того, щоб створити запит щодо сертифіката:\n\n* Вузол має існувати\n* Служба має існувати (або слід скористатися параметром --add для\nавтоматичного додавання)\n\nПРИКЛАДИ:\n\n Створити запит щодо нового сертифіката і додати реєстраційний запис:\n ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n\n Отримати вже створений сертифікат:\n ipa cert-show 1032\n\n Відкликати сертифікат (причини визначено у RFC 5280):\n ipa cert-revoke --revocation-reason=6 1032\n\n Вилучити сертифікат зі списку відкликання:\n ipa cert-remove-hold 1032\n\n Перевірити стан запиту щодо підписування:\n ipa cert-status 10\n\nУ поточній версії IPA негайно виконує (або відхиляє) всі запити щодо\nсертифікатів, отже дані щодо стану запиту не мають сенсу. Ці дані\nможуть знадобитися у наступних версіях або у разі, якщо CA видає\nсертифікат не одразу.\n\nПередбачено підтримку таких причин відкликання:\n\n * 0 - unspecified\n * 1 - keyCompromise\n * 2 - cACompromise\n * 3 - affiliationChanged\n * 4 - superseded\n * 5 - cessationOfOperation\n * 6 - certificateHold\n * 8 - removeFromCRL\n * 9 - privilegeWithdrawn\n * 10 - aACompromise\n\nЗауважте, що коди причини 7 не використовується. Докладніші дані у RFC 5280:\n\nhttp://www.ietf.org/rfc/rfc5280.txt\n\n" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" -msgstr "Запис ресурсу DNS" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" +msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR):" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" -msgstr "Назва запису" +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" +msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR)" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" -msgstr "Строк дії" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR): %s" -#: ipalib/plugins/dns.py:538 -msgid "Class" -msgstr "Клас" +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." +msgstr "Надіслати запит щодо підписування сертифіката." -#: ipalib/plugins/dns.py:539 -msgid "DNS class" -msgstr "Клас DNS" +#: ipalib/plugins/cert.py:211 +msgid "CSR" +msgstr "CSR" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " -msgstr "" -"\n" -" Основний клас для команд записів DNS з параметрами запису.\n" -" " +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" +msgstr "Реєстраційний запис" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " -msgstr "" -"\n" -" Основний клас для додавання/вилучення записів з записів ресурсів DNS.\n" -" " +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "Реєстраційний запис служби для цього сертифіката (наприклад HTTP/test.example.com)" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " -msgstr "" -"\n" -" Додати записи до ресурсу DNS.\n" -" " +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" +msgstr "автоматично додати реєстраційний запис, якщо його не існує" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " -msgstr "" -"\n" -" Додати новий запис ресурсу DNS.\n" -" " +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" +msgstr "Сертифікат" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" -msgstr "" -"примусово створити запис сервера назв, навіть якщо відповідної назви вузла " -"немає у DNS" +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" +msgstr "Об’єкт" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" -msgstr "" -"Зворотна зона для запису PTR має бути підзоною одного з таких повноформатних" -" доменів: %s" +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" +msgstr "Видавець" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" -msgstr "Зворотна зона %s потребує точно %d компонентів IP-адрес, надано %d" +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" +msgstr "Не раніше" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" -msgstr "Запис PTR «%s» є неповним (перевірте чи немає завершального «.»)" +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" +msgstr "Не пізніше" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " -msgstr "" -"\n" -" Вилучити запис DNS.\n" -" " +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" +msgstr "Відбиток (MD5)" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" -msgstr "Вилучено запис «%(value)s»" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" +msgstr "Відбиток (SHA1)" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " -msgstr "" -"\n" -" Вилучити запис ресурсу DNS.\n" -" " +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" +msgstr "Серійний номер" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." -msgstr "" -"Не надано ні --del-all, ні параметрів вилучення певного запису.\n" -"Всі підтримувані типи записів можна знайти у виводі команди help." +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" +msgstr "Відображення назви змінної на значення за словником" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" -msgstr "Вилучити всі пов’язані записи" +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." +msgstr "Перевірити стан запиту щодо підписування сертифіката." -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." -msgstr "Вилучення певних ресурсів не передбачено." +#: ipalib/plugins/cert.py:404 +msgid "Request id" +msgstr "Ід. запиту" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" -msgstr "Вилучити все?" +#: ipalib/plugins/cert.py:410 +msgid "Request status" +msgstr "Стан запиту" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" -msgstr "Поточний вміст запису DNS:\n" +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "Серійний десятковий номер або шістнадцятковий номер з префіксом 0x" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" -msgstr "Запису %s зі значенням %s не знайдено" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." +msgstr "Отримати вже створений сертифікат." -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " -msgstr "" -"\n" -" Показати ресурс DNS.\n" -" " +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" +msgstr "Причина відкликання" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " -msgstr "" -"\n" -" Шукати ресурси DNS.\n" -" " +#: ipalib/plugins/cert.py:466 +msgid "Output filename" +msgstr "Назва файла виводу" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " -msgstr "" -"\n" -" Визначити назву вузла у DNS\n" -" " +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." +msgstr "Файл, у якому зберігатимуться дані сертифіката." -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" -msgstr "Знайдено «%(value)s»" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." +msgstr "Відкликати сертифікат." -#: ipalib/plugins/dns.py:940 -msgid "Hostname" -msgstr "Назва вузла" +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "Анульований" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" -msgstr "Вузла «%(host)s» не знайдено" +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "Підстава" + +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" +msgstr "Причина відкликання сертифіката (0-10)" + +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" +msgstr "7 не є коректною причиною відкликання" + +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." +msgstr "Забрати відкликаний сертифікат." + +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" +msgstr "Відкликання скасовано" + +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "Помилка" -#: ipalib/plugins/dns.py:970 +#: ipalib/plugins/config.py:31 msgid "" "\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" +"Server configuration\n" "\n" -" Перевіряє, чи увімкнено на якомусь сервері службу DNS.\n" -" " - -#: ipalib/plugins/entitle.py:19 -msgid "" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements\n" +"NOTES:\n" "\n" -"Manage entitlements for client machines\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"EXAMPLES:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" -"\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" -"\n" -"Іменування\n" -"\n" -"Керування іменуванням клієнтських комп’ютерів\n" -"\n" -"Іменуваннями можна керувати реєстрацією за допомогою сервера іменувань\n" -"на основі імені користувача і пароля або ручним імпортуванням іменування\n" -"сертифікатів. Сертифікат іменування містить вбудовану інформацію,\n" -"зокрема іменування продукту, кількість та дати чинності.\n" -"\n" -"Сервер іменування керує кількістю доступних іменувань.\n" -"Для позначення іменувань використаними сервером IPA вам слід вказати\n" -"кількість та позначити як використані сервером іменування.\n" -"\n" -" Реєстрація за допомогою сервера іменувань:\n" -" ipa entitle-register consumer\n" -"\n" -" Імпортування сертифіката іменування:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" -"\n" -" Показ поточних іменувань:\n" -" ipa entitle-status\n" -"\n" -" Отримання подробиць щодо сертифікатів іменування:\n" -" ipa entitle-get\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" "\n" -" Використати декілька іменувань з сервера іменування:\n" -" ipa entitle-consume 50\n" -"\n" -"Ідентифікатором реєстрації є унікальний ідентифікатор (UUID). Ідентифікатор\n" -"буде ІМПОРТОВАНО, якщо ви скористаєтеся імпортуванням іменувань.\n" -"\n" -"Внесення змін до /etc/rhsm/rhsm.conf потребує перезапуску служби httpd.\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" +msgstr "\nНалаштування сервера\n\nКерування типовими значеннями, які використовує IPA, та деякими з\nпридатних до зміни параметрів.\n\nЗАУВАЖЕННЯ:\n\nТут зберігається значення параметра сповіщення щодо паролів\n(--pwdexpnotify), отже його не буде скопійовано. Це значення поки що\nне використовується для сповіщення користувачів щодо завершення строку дії\nпароля.\n\nДеякі з атрибутів придатні лише для читання, їх буде показано лише з метою\nінформування. Серед цих атрибутів:\n\nОснова призначення сертифіката: змінна основа призначення сертифіката,\n наприклад O=EXAMPLE.COM. Цей атрибут можна налаштувати лише під час\n встановлення.\nПараметри додатка роботи з паролями: у поточній версії визначають додаткові\n хеші, які створюються на основі пароля (можуть бути і інші умови).\n\nПРИКЛАДИ:\n\n Показати основні налаштування сервера:\n ipa config-show\n\n Показати всі параметри налаштування:\n ipa config-show --all\n\n Змінити максимальну довжину імені користувача на 99 символів:\n ipa config-mod --maxusername=99\n\n Збільшити типовий час і максимальне обмеження на розмір пошуку\n сервера IPA:\n ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n\n Встановити типовий домен електронної пошти користувачів:\n ipa config-mod --emaildomain=example.com\n\n Увімкнути режим перенесення, щоб зробити команду \"ipa migrate-ds\"\n працездатною:\n ipa config-mod --enable-migration=TRUE\n" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " -msgstr "" -"\n" -" Отримати наше сховище іменувань. Припускається, що існує лише одне сховище.\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." +msgstr "searchtimelimit повинен мати значення -1 або > 1." -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " -msgstr "" -"\n" -" Отримати наш UUID, сертифікат і ключ з LDAP.\n" -"\n" -" Окрім стану помилки, за вилучення тимчасових файлів відповідає функція виклику.\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" +msgstr "параметри налаштування" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " -msgstr "" -"\n" -" Об’єкт іменування\n" -" " +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" +msgstr "Налаштування" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" -msgstr "Іменування" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" +msgstr "Максимальна довжина імені користувача" + +#: ipalib/plugins/config.py:100 +msgid "Home directory base" +msgstr "Адреса домашніх каталогів" + +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" +msgstr "Типова адреса домашніх каталогів" + +#: ipalib/plugins/config.py:105 +msgid "Default shell" +msgstr "Типова оболонка" + +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" +msgstr "Типова оболонка для нових користувачів" + +#: ipalib/plugins/config.py:110 +msgid "Default users group" +msgstr "Типова група користувачів" + +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" +msgstr "Типова група для нових користувачів" + +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" +msgstr "Типовий домен ел. пошти" + +#: ipalib/plugins/config.py:120 +msgid "Search time limit" +msgstr "Обмеження часу пошуку" -#: ipalib/plugins/entitle.py:206 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Display current entitlements\n" -" " -msgstr "" -"\n" -" Показати поточні іменування\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку (>0, -1 — без обмежень)" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" -msgstr "UUID" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" +msgstr "Обмеження розміру пошуку" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" -msgstr "Продукт" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "Максимальна кількість записів результатів пошуку (-1 — без обмежень)" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" -msgstr "Кількість" +#: ipalib/plugins/config.py:132 +msgid "User search fields" +msgstr "Поля пошуку користувачів" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" -msgstr "Використано" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "Відокремлений комами список полів, за якими виконуватиметься пошук користувачів" -#: ipalib/plugins/entitle.py:276 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Consume an entitlement\n" -" " -msgstr "" -"\n" -" Використати іменування\n" -" " +"A comma-separated list of fields to search in when searching for groups" +msgstr "Відокремлений комами список полів, за якими виконуватиметься пошук груп" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." -msgstr "Використано %(value)s іменувань." +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" +msgstr "Увімкнути режим міграції" + +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" +msgstr "Базовий об’єкт сертифікації" -#: ipalib/plugins/entitle.py:314 +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "Основа для створення записів об’єктів сертифікації (OU=Test,O=Example)" + +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" +msgstr "Типові класи об’єктів групи" + +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" +msgstr "Типові класи об’єктів груп (список класів, відокремлених комами)" + +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" +msgstr "Типові класи об’єктів користувачів" + +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" +msgstr "Типові класи об’єктів користувачів (список класів, відокремлених комами)" + +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" +msgstr "Сповіщення про вичерпання строку дії пароля (у днях)" + +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" +msgstr "Сповіщення про кількість днів, які залишилися до завершення дії пароля." + +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" +msgstr "Можливості додатка паролів" + +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" +msgstr "Додаткові хеші для створення у додатку паролів." + +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." +msgstr "Змінити параметри налаштування." + +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" +msgstr "Такої групи не існує" + +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "не можна використовувати атрибут «%s»" + +#: ipalib/plugins/config.py:215 +msgid "May not be empty" +msgstr "Не може бути порожнім" + +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" +msgstr "Типовий атрибут %s, %s, має бути заборонено!" + +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." +msgstr "Показати поточні налаштування." + +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " -msgstr "" +"Group to Group Delegation\n" "\n" -" Перевизначити це, щоб ми могли встановити значення декільком\n" -" використаним іменуванням.\n" -" " - -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " -msgstr "" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" "\n" -" Повернення сертифіката є не дуже цікавим. Замість нього буде повернуто\n" -" стан іменування.\n" -" " - -#: ipalib/plugins/entitle.py:380 -msgid "" +"EXAMPLES:\n" "\n" -" Retrieve the entitlement certs\n" -" " -msgstr "" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" "\n" -" Отримати сертифікати іменування\n" -" " +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" +msgstr "\nМіжгрупове уповноваження\n\nПрава доступу може бути точно налаштовано. Правила керування доступом\nабо інструкції (ACI), надання дозволу на виконання певних завдань, зокрема\nдодавання користувача, внесення змін до групи тощо.\n\nМіжгрупові уповноваження надають учасникам однієї групи можливість\nоновлювати набір атрибутів учасників іншої групи.\n\nПРИКЛАДИ:\n\n Додати правило уповноваження, яке надасть змогу керівникам (managers)\n редагувати адреси співробітників:\n ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n\n Під час керування списком атрибутів слід включати всі атрибути списку\n разом з вже створеними. Додавання до списку postalCode:\n ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n\n Показ нашого оновленого правила:\n ipa delegation-show \"managers edit employees' street\"\n\n Вилучення правила:\n ipa delegation-del \"managers edit employees' street\"\n" -#: ipalib/plugins/entitle.py:394 -msgid "Start" -msgstr "Початок" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" +msgstr "Уповноваження «%(permission)s» не знайдено" -#: ipalib/plugins/entitle.py:397 -msgid "End" -msgstr "Кінець" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" +msgstr "Помилка під час отримання групи учасників %(group)s: %(error)s" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" -msgstr "Серійний номер" +#: ipalib/plugins/delegation.py:101 +msgid "delegation" +msgstr "уповноваження" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" -msgstr "Не є сертифікатом іменування" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" +msgstr "уповноваження" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " -msgstr "" -"\n" -" Шукати облікові записи іменування.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" +msgstr "Уповноваження" + +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" +msgstr "Уповноваження" + +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" +msgstr "Назва уповноваження" -#: ipalib/plugins/entitle.py:473 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Register to the entitlement system\n" -" " -msgstr "" -"\n" -" Зареєструвати систему іменування\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." +msgstr "Відокремлений комами список прав доступу, які слід надати (read, write). Типовим є write." -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." -msgstr "Зареєстровано сервер іменування." +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" +msgstr "Учасник групи користувачів" -#: ipalib/plugins/entitle.py:483 -msgid "Username" -msgstr "Користувач" +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" +msgstr "Група користувачів, до якої слід застосувати уповноваження" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" -msgstr "UUID реєстрації" +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." +msgstr "Додати нове уповноваження." -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" -msgstr "Пароль" +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "Додано уповноваження «%(value)s»" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" -msgstr "Пароль реєстрації" +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." +msgstr "Вилучити уповноваження." -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " -msgstr "" -"\n" -" Імпортувати сертифікат іменування.\n" -" " +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "Вилучено уповноваження «%(value)s»" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " -msgstr "" -"\n" -" Якщо ми додаємо перший запис, оновлення не буде, отже EmptyModlist\n" -" буде відкинуто. Ігноруємо.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." +msgstr "Змінити уповноваження." -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " -msgstr "" -"\n" -" Виконати повторну синхронізацію локального кешу іменування з сервером іменування\n" -" " +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "Змінено уповноваження «%(value)s»" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." -msgstr "Іменування синхронізовано." +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." +msgstr "Пошук уповноважень." + +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "встановлено відповідність %(count)d уповноваження" +msgstr[1] "встановлено відповідність %(count)d уповноваження" +msgstr[2] "встановлено відповідність %(count)d уповноважень" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." +msgstr "Показати дані щодо уповноваження." -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" +"Domain Name System (DNS)\n" "\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" +"Manage DNS zone and resource records.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" -msgstr "" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -"Групи користувачів\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -"Керування групами користувачів. Типово нові групи є групами POSIX. Ви можете\n" -"додати параметр --nonposix до команди group-add з метою позначення нової\n" -"групи як групи не-POSIX. Ви можете скористатися тим аргументом команди group-mod\n" -"для перетворення групи не-POSIX на групу POSIX. Групи POSIX не можна\n" -"перетворювати на групи не-POSIX.\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -"Кожна група повинна мати опис.\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -"Групи POSIX повинні мати номер ідентифікатора групи (GID). Передбачено підтримку\n" -"зміни GID, але ця зміна може вплинути на права доступу до ваших файлів. Для\n" -"створення групи слід вказати GID. IPA створить одну групу автоматично, якщо\n" -"таку не вказано.\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -"ПРИКЛАДИ:\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Додавання нової групи:\n" -" ipa group-add --desc='local administrators' localadmins\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" "\n" -" Додавання нової групи не-POSIX:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +" A record: 1.2.3.4, 11.22.33.44\n" "\n" -" Перетворити групу не-POSIX на групу posix:\n" -" ipa group-mod --posix remoteadmins\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" "\n" -" Додати нову групу POSIX з вказаним ідентифікатором групи:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" "\n" -" Додати нову групу POSIX і надати IPA змогу призначити ідентифікатор:\n" -" ipa group-add --desc='printer admins' printeradmins\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" "\n" -" Вилучення групи:\n" -" ipa group-del unixadmins\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" "\n" -" Додати групу \"remoteadmins\" до групи \"localadmins\":\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" "\n" -" Додати список користувачів до групи \"localadmins\":\n" -" ipa group-add-member --users=test1,test2 localadmins\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" "\n" -" Вилучення користувача з групи \"localadmins\":\n" -" ipa group-remove-member --users=test2 localadmins\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" "\n" -" Показати інформацію щодо іменованої групи.\n" -" ipa group-show localadmins\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" +msgstr "\nСистема доменних назв (DNS)\n\nКерування зоною і записами ресурсів DNS.\n\nПРИКЛАДИ:\n\n Додавання нової зони:\n ipa dnszone-add example.com --name-server nameserver.example.com\n --admin-email admin@example.com\n\n Змінити зону з метою дозволити динамічні оновлення для власних записів вузлів у області EXAMPLE.COM:\n ipa dnszone-mod example.com --dynamic-update=TRUE \\\n --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n\n Додавання нової зворотної зони, вказаної за IP-адресою у мережі:\n ipa dnszone-add --name-from-ip 80.142.15.0/24\n --name-server nameserver.example.com\n\n Додавання другого сервера назв для example.com:\n ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n\n Додавання поштового сервера для example.com:\n ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n\n Вилучення попередньо доданий сервер назв з example.com:\n ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n\n Додавання запис LOC для example.com:\n ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n\n Додавання нового запису A для www.example.com: (випадковий IP)\n ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n\n Додавання нового запису PTR для www.example.com\n ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n\n Додавання нових записів SRV для серверів LDAP. Три чвертини запитів\n має бути надіслано на fast.example.com, одну чвертину — slow.example.com.\n Якщо жодне з них не буде доступним, перемкнутися на backup.example.com.\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n\n У разі виконання команди dnsrecord-add без параметрів для додавання певного\n запису буде увімкнено інтерактивний режим. Керування режимом інтерактивно\n запитає вас щодо більшості типових типів записів відповідної зони:\n ipa dnsrecord-add example.com www\n [запис A]: 1.2.3.4,11.22.33.44 (2 інтерактивно вказано два випадкових IP)\n [запис AAAA]: (не вказано адреси AAAA)\n Назва запису: www\n Запис A: 1.2.3.4, 11.22.33.44\n\n Інтерактивним режимом можна скористатися для вилучення записів DNS:\n ipa dnsrecord-del example.com www\n Вилучення певних ресурсів не передбачено.\n Вилучити всі? Так/Ні (типово «Ні»): (не вилучати всі записи)\n Поточний вміст запису DNS:\n\n запис A: 1.2.3.4, 11.22.33.44\n\n Вилучити запис A «1.2.3.4»? Так/Ні (типово «Ні»):\n Вилучити запис A «11.22.33.44»? Так/Ні (типово «Ні»): y\n Назва запису: www\n Запис A: 1.2.3.4 (запис A 11.22.33.44 було вилучено)\n\n Показ зони example.com:\n ipa dnszone-show example.com\n\n Пошук зони з рядком «example» у назві домену:\n ipa dnszone-find example\n\n Пошук записів для ресурсів з рядком «www» у назві у зоні example.com:\n ipa dnsrecord-find example.com www\n\n Знайти записи A зі значенням 10.10.0.1 у зоні example.com\n ipa dnsrecord-find example.com --a-rec 10.10.0.1\n\n Показ записів для ресурсу www у зоні example.com\n ipa dnsrecord-show example.com www\n\n Вилучити зону example.com з усіма записами ресурсів:\n ipa dnszone-del example.com\n\n Визначення назви вузла з метою перевірки, чи існує вузол (додавання\n типового домену IPA, якщо його не включено):\n ipa dns-resolve www.example.com\n ipa dns-resolve www\n" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " -msgstr "" -"\n" -" Об’єкт групи.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" +msgstr "некоректний формат запису IP-адреси" -#: ipalib/plugins/group.py:100 -msgid "User Groups" -msgstr "Групи користувачів" +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" +msgstr "некоректний формат запису мережі IP" -#: ipalib/plugins/group.py:108 -msgid "Group name" -msgstr "Назва групи" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" +msgstr "формат має бути таким: \"пріоритетність вага порт призначення\"" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" -msgstr "Опис групи" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" +msgstr "формат має бути таким: \"пріоритетність вага порт призначення\" (див. RFC 2782)" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" -msgstr "GID" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" +msgstr "формат має бути таким: \"пріоритетність поштовий_сервер\" (див. RFC 1035)" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" -msgstr "GID (за допомогою цього параметра можна встановити значення вручну)" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" +msgstr "значення пріоритетності має бути цілим числом" + +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" +msgstr "значення пріоритетності має належати діапазону від 0 до 65535" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/dns.py:223 msgid "" -"\n" -" Create a new group.\n" -" " -msgstr "" -"\n" -" Створити групу.\n" -" " +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" +msgstr "формат має бути таким: \"порядок пріоритетність прапорці служба формальний_вираз замінник\" (див. RFC 2915)" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" -msgstr "Додано групу «%(value)s»" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" +msgstr "порядок і пріоритетність мають бути цілими числами" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" -msgstr "Створити як групу, що не відповідає POSIX" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" +msgstr "значення порядок і пріоритетність мають належати діапазону від 0 до 65535" + +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" +msgstr "прапорець має містити один символ (можна використовувати прості лапки)" -#: ipalib/plugins/group.py:154 +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" +msgstr "прапорець має бути одним зі значень: \"S\", \"A\", \"U\" або \"P\"" + +#: ipalib/plugins/dns.py:249 msgid "" -"\n" -" Delete group.\n" -" " -msgstr "" -"\n" -" Вилучити групу.\n" -" " +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "формат має бути таким: \"підтип назва_вузла\" (див. RFC 1183)" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" -msgstr "Вилучено групу «%(value)s»" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" +msgstr "значення підтипу має бути цілим числом" + +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" +msgstr "значення підтип має належати діапазону від 0 до 65535" -#: ipalib/plugins/group.py:186 +#: ipalib/plugins/dns.py:266 msgid "" -"\n" -" Modify a group.\n" -" " -msgstr "" -"\n" -" Змінити групу.\n" -" " +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" +msgstr "формат має бути таким: \"тип теґ_ключа алгоритм сертифікат—crl\" (див. RFC 4398)" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" -msgstr "Змінено групу «%(value)s»" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" +msgstr "теґ_ключа, алгоритм і тип_контрольної_суми мають бути цілими числами" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" -msgstr "змінити на групу POSIX" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" +msgstr "значення теґ і теґ_ключа мають належати діапазону від 0 до 65535" + +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "значення алгоритм має належати діапазону від 0 до 255" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" +msgstr "формат має бути таким: \"назва_домену\" (див. RFC 1035): %s" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" +msgstr "формат має бути таким: \"призначення\" (див. RFC 2672): %s" + +#: ipalib/plugins/dns.py:309 msgid "" -"\n" -" Search for groups.\n" -" " -msgstr "" -"\n" -" Шукати групи.\n" -" " +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" +msgstr "формат має бути таким: \"теґ_ключа алгоритм тип_контрольної_суми контрольна_сума\" (див. RFC 4034)" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "встановлено відповідність %(count)d групи" -msgstr[1] "встановлено відповідність %(count)d груп" -msgstr[2] "встановлено відповідність %(count)d груп" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" +msgstr "значення прапорці має належати діапазону від 0 до 65535" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" -msgstr "шукати закриті групи" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" +msgstr "значення алгоритм і тип_контрольної_суми мають належати діапазону від 0 до 255" -#: ipalib/plugins/group.py:257 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Display information about a named group.\n" -" " -msgstr "" -"\n" -" Показати дані щодо іменованої групи.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" +msgstr "формат має бути таким: \"прапорці протокол алгоритм відкритий_ключ\" (див. RFC 2535)" + +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "прапорці, протокол і алгоритм мають бути цілими числами" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" +msgstr "значення протокол має належати діапазону від 0 до 255" + +#: ipalib/plugins/dns.py:367 +msgid "" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" +msgstr "формат має бути таким:\n \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n where:\n d1: [0 .. 90] (широта у градусах)\n d2: [0 .. 180] (довгота у градусах)\n m1, m2: [0 .. 59] (мінути широти і довготи)\n s1, s2: [0 .. 59.999] (секунди широти і довготи)\n alt: [-100000.00 .. 42849672.95] крок — .01 (висота у метрах)\n siz, hp, vp: [0 .. 90000000.00] (розміри, точність у метрах)\n Див. RFC 1876." + +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" +msgstr "%s має бути цілим числом" -#: ipalib/plugins/group.py:265 +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" +msgstr "%s має бути дійсним числом" + +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "d1 і d2 мають належати діапазону від 0 до 90" + +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "m1, m2, s1 і s2 мають належати діапазону від 0 до 59.999" + +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "alt має належати діапазону від -100000.00 до 42849672.95" + +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" +msgstr "siz, hp і vp мають належати діапазону від 0 до 90000000.00" + +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "формат має бути таким: \"назва_домену\" (див. RFC 1035)" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Add members to a group.\n" -" " -msgstr "" -"\n" -" Додати учасників до групи.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" +msgstr "формат має бути таким: \"назва_наступного_домену тип1 [тип2 [тип3 [...]]]\" (див. RFC 4034)" + +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " +msgstr "тип має бути одним з таких: " -#: ipalib/plugins/group.py:273 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Remove members from a group.\n" -" " -msgstr "" -"\n" -" Вилучити учасників з групи.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" +msgstr "формат має бути таким: \"пріоритет обмінник\" (див. RFC 2230)" -#: ipalib/plugins/group.py:281 +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "значення пріоритетність має бути цілим числом" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" +msgstr "значення пріоритетність має належати діапазону від 0 до 65535" + +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Detach a managed group from a user\n" -" " -msgstr "" -"\n" -" Від’єднати керовану групу від користувача\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" +msgstr "формат має бути таким \"тип алгоритм мітки початковий_ttl строк_завершення_дії_підпису початок_дії_підпису теґ_ключа ім’я_підписувача підпис\" (див. RFC 2535, 4034)" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" -msgstr "Від’єднати групу «%(value)s» від користувача «%(value)s»" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " +msgstr "тип має бути одним з таких значень: " + +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "значеннями параметрів алгоритм, мітки, початковий_ttl і теґ_ключа мають бути цілі числа" -#: ipalib/plugins/group.py:288 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" -"\n" -" Ця дія вимагає оновлення даних користувача і групи. Спочатку\n" -" нам слід перевірити, чи можна оновити дані користувача і групи,\n" -" а потім перейти до виконання завдання. Випадок, коли можливе\n" -" оновлення даних лише користувача або лише групи з наступним\n" -" помилковим станом системи, слід виключити.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" +msgstr "параметри строк_дії_підпису і початок_дії_підпису має бути вказано у форматі запису часу \"РРРРММДДГГХХСС\"" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" -msgstr "заборонено змінювати записи користувачів" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" +msgstr "значення параметра алгоритм і мітки мають належати діапазону від 0 до 255" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" -msgstr "заборонено змінювати записи груп" +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" +msgstr "значення початковий_ttl має належати діапазону від 0 до 4294967295" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" -msgstr "Не є керованою групою" +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" +msgstr "значення теґ має належати діапазону від 0 до 65535" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -"Host-based access control\n" -"\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" -"\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" -"\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" -"\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" -"\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" -"\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" -"\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" -"\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" -msgstr "" -"\n" -"Керування доступом на основі вузлів\n" -"\n" -"Керуйте тим, хто з яких вузлів і звідки зможе отримувати доступ\n" -"до певних служб. Ви можете скористатися HBAC для визначення\n" -"користувачів і груп на вузлі походження запиту зможе отримувати\n" -"доступ до певної служби або групи служб на вузлі призначення.\n" -"\n" -"Ви також можете визначити категорію користувачів, вузли призначення\n" -"та всі вузли походження. У поточній версії можливі варіанти\n" -"обмежено варіантом \"all\", але перелік варіантів може бути\n" -"розширено у майбутніх версіях.\n" -"\n" -"Вузли призначення та вузли походження у правилах HBAC мають бути\n" -"вузлами, керованими IPA.\n" -"\n" -"Доступними службами і групами служб є служби, керовані hbacsvc\n" -"та додатками hbacsvcgroup, відповідно.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Створення правила \"test1\", яке надає всім користувачам доступ\n" -" до вузла \"server\" звідусюди:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" -"\n" -" Показ властивостей вказаного правила HBAC:\n" -" ipa hbacrule-show test1\n" -"\n" -" Створення правила для певної служби. Це правило надасть користувачу john\n" -" доступ до служби sshd у будь-якій системі звідусіль:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" -"\n" -" Створення правила для нової групи служб. Користувачу john\n" -" надається доступ до служби FTP у будь-якій системі звідусіль:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" Вимикання вказаного правила HBAC:\n" -" ipa hbacrule-disable test1\n" -"\n" -" Вилучення вказаного правила HBAC:\n" -" ipa hbacrule-del allow_server\n" +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" +msgstr "формат має бути таким: \"алгоритм тип_fp відбиток\" (див. RFC 4255)" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " -msgstr "" -"\n" -" Визначити, чи options[атрибут] у нижньому регістрі, всі у безпечний спосіб.\n" -" " +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" +msgstr "значення параметрів алгоритм і тип_fp мають бути цілими числами" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " -msgstr "" -"\n" -" Об’єкт HBAC.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" +msgstr "значення параметра алгоритм і тип_fp мають належати діапазону від 0 до 255" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" -msgstr "Правило HBAC" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" +msgstr "Тип RR DNS не підтримується додатком bind-dyndb-ldap" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" -msgstr "Назва правила" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "Сервер назв «%(host)s» не має відповідного запису A/AAAA" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "Тип правила (дозволити (allow) чи заборонити (deny))" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" +msgstr "зона DNS" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" -msgstr "Тип правила" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" +msgstr "зони DNS" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" -msgstr "Категорія користувачів" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" +msgstr "Зони DNS" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" -msgstr "Категорія користувачів, до якої застосовується правило" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" +msgstr "Зона DNS" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" -msgstr "Категорія вузлів" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" +msgstr "Назва зони" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" -msgstr "Категорія вузлів, до якої застосовується правило" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" +msgstr "Назва зони (FQDN)" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" -msgstr "Категорія вузлів вихідних даних" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "Мережа IP зворотної зони" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" -msgstr "Категорія вузлів вихідних даних, до якої застосовується правило" +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "Мережа IP для створення зворотних назв зони" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" -msgstr "Категорія служб" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" +msgstr "Основний сервер назв" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" -msgstr "Категорія служб, до якої застосовується правило" +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" +msgstr "Назва домену основного сервера назв" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" -msgstr "Увімкнено" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" +msgstr "Адреса електронної пошти адміністратора" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" -msgstr "Користувачі" +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" +msgstr "Серійний номер SOA" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "Групи" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "Серійний номер запису SOA" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" -msgstr "Вузли" +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" +msgstr "Освіження SOA" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" -msgstr "Групи вузлів" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" +msgstr "Час оновлення запису SOA" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" -msgstr "Вузли вихідних даних" +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" +msgstr "Повторення спроби SOA" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" -msgstr "Групи вихідних вузлів" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" +msgstr "Проміжок між повторними спробами для запису SOA" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" -msgstr "Служби" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" +msgstr "Застарівання SOA" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" -msgstr "Групи служб" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" +msgstr "Час завершення строку дії запису SOA" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " -msgstr "" -"\n" -" Створити правило HBAC.\n" -" " +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" +msgstr "Мінімальний SOA" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" -msgstr "Додано правило HBAC «%(value)s»" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" +msgstr "Тривалість кешування відмов" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " -msgstr "" -"\n" -" Вилучити правило HBAC.\n" -" " +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" +msgstr "Строк дії SOA" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "Вилучено правило HBAC «%(value)s»" +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" +msgstr "Час життя запису SOA" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " -msgstr "" -"\n" -" Змінити правило HBAC.\n" -" " +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "Клас SOA" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "Змінено правило HBAC «%(value)s»" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" +msgstr "Клас записів SOA" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " -msgstr "" -"\n" -" Шукати правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" +msgstr "Правила оновлення BIND" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "встановлено відповідність %(count)d правила HBAC" -msgstr[1] "встановлено відповідність %(count)d правил HBAC" -msgstr[2] "встановлено відповідність %(count)d правил HBAC" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "Активна зона" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " -msgstr "" -"\n" -" Показати властивості правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" +msgstr "Чи є зона активною?" -#: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " -msgstr "" -"\n" -" Увімкнути правило HBAC.\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" +msgstr "Динамічне оновлення" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "Увімкнено правило HBAC «%(value)s»" +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." +msgstr "Дозволити динамічні оновлення." -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " -msgstr "" -"\n" -" Вимкнути правило HBAC.\n" -" " +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." +msgstr "Створити зону DNS (запис SOA)." -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "Вимкнено правило HBAC «%(value)s»" +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" +msgstr "Примусово" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" -"\n" -" Додати час доступу до правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." +msgstr "Примусово створити зону DNS, навіть якщо сервера назв немає у DNS." -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" -msgstr "Час доступу" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" +msgstr "Додати запис сервера назв до DNS з цією IP-адресою" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" -"\n" -" Вилучити час доступу з правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" +msgstr "DNS не налаштовано" -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " -msgstr "" -"\n" -" Додати користувачів та групи до правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" +msgstr "Адреса сервера назв не є повною назвою домену" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " -msgstr "" -"\n" -" Вилучити користувачів і групи з правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." +msgstr "Вилучити зону DNS (запис SOA)." -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " -msgstr "" -"\n" -" Додати вузли призначення та групи вузлів до правила HBAC\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." +msgstr "Змінити зону DNS (запис SOA)." -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " -msgstr "" -"\n" -" Вилучити вузли призначення та групи вузлів з правила HBAC\n" -" " +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." +msgstr "Пошук зон DNS (записів SOA)." -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " -msgstr "" -"\n" -" Додати початкові вузли та групи вузлів з правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" +msgstr "Лише прямі зони" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " -msgstr "" -"\n" -" Вилучити вузли походження та групи вузлів з правила HBAC\n" -" " +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" +msgstr "Шукати лише прямі зони" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " -msgstr "" -"\n" -" Додати служби до правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." +msgstr "Показати дані щодо зони DNS (запису SOA)." -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " -msgstr "" -"\n" -" Вилучити служби та групи служб з правила HBAC.\n" -" " +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." +msgstr "Вимкнути зону DNS." -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" -msgstr "" -"\n" -"Служби HBAC\n" -"\n" -"Служби PAM, якими може керувати HBAC. Назва, використана тут, має\n" -"відповідати назві служби, з якою працює PAM.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додати нову службу HBAC:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Змінити вже створену службу HBAC:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Шукати служби HBAC. У нашому прикладі буде повернуто два результати\n" -" службу FTP і щойно додану службу tftp:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Вилучення служби HBAC:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" +msgstr "Вимкнено зону DNS «%(value)s»" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " -msgstr "" -"\n" -" Об’єкт служби HBAC.\n" -" " +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." +msgstr "Увімкнути зону DNS." -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" -msgstr "Служби HBAC" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" +msgstr "Увімкнено зону DNS «%(value)s»" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "Назва служби" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" +msgstr "Запис ресурсу DNS" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" -msgstr "Служба HBAC" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" +msgstr "Записи ресурсів DNS" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" -msgstr "Опис служби HBAC" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" +msgstr "Записи ресурсів DNS" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " -msgstr "" -"\n" -" Додати нову службу HBAC.\n" -" " +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" +msgstr "Запис ресурсу DNS" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" -msgstr "Додано службу HBAC «%(value)s»" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" +msgstr "Назва запису" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " -msgstr "" -"\n" -" Вилучити вже створену службу HBAC.\n" -" " +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" +msgstr "Строк дії" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "Вилучено службу HBAC «%(value)s»" +#: ipalib/plugins/dns.py:944 +msgid "Class" +msgstr "Клас" + +#: ipalib/plugins/dns.py:945 +msgid "DNS class" +msgstr "Клас DNS" -#: ipalib/plugins/hbacsvc.py:100 +#: ipalib/plugins/dns.py:972 +#, python-format msgid "" -"\n" -" Modify an HBAC service.\n" -" " -msgstr "" -"\n" -" Змінити службу HBAC.\n" -" " +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" +msgstr "Зворотна зона для запису PTR має бути підзоною одного з таких повноформатних доменів: %s" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" -msgstr "Змінено службу HBAC «%(value)s»" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" +msgstr "Зворотна зона %s потребує точно %d компонентів IP-адрес, надано %d" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " -msgstr "" -"\n" -" Шукати служби HBAC.\n" -" " +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." +msgstr "Додати новий запис ресурсу DNS." -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "встановлено відповідність %(count)d служби HBAC" -msgstr[1] "встановлено відповідність %(count)d служб HBAC" -msgstr[2] "встановлено відповідність %(count)d служб HBAC" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "примусово створити запис сервера назв, навіть якщо відповідної назви вузла немає у DNS" -#: ipalib/plugins/hbacsvc.py:122 +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." +msgstr "Змінити запис ресурсу DNS." + +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" +msgstr "Вилучено запис «%(value)s»" + +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." +msgstr "Вилучити запис ресурсу DNS." + +#: ipalib/plugins/dns.py:1259 msgid "" -"\n" -" Display information about an HBAC service.\n" -" " -msgstr "" -"\n" -" Показати дані щодо служби HBAC.\n" -" " +"Neither --del-all nor options to delete a specific record provided.\n" +"Command help may be consulted for all supported record types." +msgstr "Не надано ні --del-all, ні параметрів вилучення певного запису.\nВсі підтримувані типи записів можна знайти у виводі команди help." + +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" +msgstr "Вилучити всі пов’язані записи" + +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." +msgstr "Вилучення певних ресурсів не передбачено." + +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" +msgstr "Вилучити все?" + +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" +msgstr "Поточний вміст запису DNS:\n" + +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "Вилучити %s «%s»?" + +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" +msgstr "Запису %s зі значенням %s не знайдено" + +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." +msgstr "Показати ресурс DNS." + +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." +msgstr "Шукати ресурси DNS." + +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." +msgstr "Визначити назву вузла у DNS." + +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" +msgstr "Знайдено «%(value)s»" + +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" +msgstr "Назва вузла" + +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" +msgstr "Вузла «%(host)s» не знайдено" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" -msgstr "" +"Entitlements\n" "\n" -"Групи служб HBAC\n" +"Manage entitlements for client machines\n" "\n" -"Групи служб HBAC можуть містити будь-яку кількість окремих служб\n" -"або «учасників». Кожна з груп повинна мати опис.\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -"ПРИКЛАДИ:\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Додавання нової групи служб HBAC:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Додавання учасників до групи служб HBAC:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Показ даних щодо вказаної групи:\n" -" ipa hbacsvcgroup-show login\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Додавання нової групи до групи \"login\":\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Вилучення групи служб HBAC:\n" -" ipa hbacsvcgroup-del login\n" - -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" HBAC service group object.\n" -" " -msgstr "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Об’єкт групи служб HBAC.\n" -" " +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" +msgstr "\nІменування\n\nКерування іменуванням клієнтських комп’ютерів\n\nІменуваннями можна керувати реєстрацією за допомогою сервера іменувань\nна основі імені користувача і пароля або ручним імпортуванням іменування\nсертифікатів. Сертифікат іменування містить вбудовану інформацію,\nзокрема іменування продукту, кількість та дати чинності.\n\nСервер іменування керує кількістю доступних іменувань.\nДля позначення іменувань використаними сервером IPA вам слід вказати\nкількість та позначити як використані сервером іменування.\n\n Реєстрація за допомогою сервера іменувань:\n ipa entitle-register consumer\n\n Імпортування сертифіката іменування:\n ipa entitle-import /home/user/ipaclient.pem\n\n Показ поточних іменувань:\n ipa entitle-status\n\n Отримання подробиць щодо сертифікатів іменування:\n ipa entitle-get\n\n Використати декілька іменувань з сервера іменування:\n ipa entitle-consume 50\n\nІдентифікатором реєстрації є унікальний ідентифікатор (UUID). Ідентифікатор\nбуде ІМПОРТОВАНО, якщо ви скористаєтеся імпортуванням іменувань.\n\nВнесення змін до /etc/rhsm/rhsm.conf потребує перезапуску служби httpd.\n" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" -msgstr "Групи служб HBAC" +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" +msgstr "іменування" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" -msgstr "Назва групи служб" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" +msgstr "іменування" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" -msgstr "Опис групи служб HBAC" +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" +msgstr "Іменування" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " -msgstr "" -"\n" -" Додати нову групу служб HBAC\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" +msgstr "Іменування" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" -msgstr "Додано групу служб HBAC «%(value)s»" +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." +msgstr "Показати поточні іменування." -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " -msgstr "" -"\n" -" Вилучити групу служб HBAC.\n" -" " +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" +msgstr "UUID" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "Вилучено групу служб HBAC «%(value)s»" +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" +msgstr "Продукт" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " -msgstr "" -"\n" -" Змінити групу служб HBAC\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" +msgstr "Кількість" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "Змінено групу служб HBAC «%(value)s»" +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" +msgstr "Використано" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " -msgstr "" -"\n" -" Шукати групу служб HBAC.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." +msgstr "Використати іменування." -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "встановлено відповідність %(count)d групи служб HBAC" -msgstr[1] "встановлено відповідність %(count)d груп служб HBAC" -msgstr[2] "встановлено відповідність %(count)d груп служб HBAC" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." +msgstr "Використано %(value)s іменувань." -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " -msgstr "" -"\n" -" Показати дані щодо групи служб HBAC\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." +msgstr "Отримати сертифікати іменування." -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " -msgstr "" -"\n" -" Додати учасників до групи служб HBAC.\n" -" " +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" +msgstr "Початок" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " -msgstr "" -"\n" -" Вилучити учасників з групи служб HBAC\n" -" " +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" +msgstr "Кінець" + +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" +msgstr "Серійний номер" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" +msgstr "Не є сертифікатом іменування" + +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." +msgstr "Шукати облікові записи іменування." + +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." +msgstr "Зареєструвати систему іменування." + +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." +msgstr "Зареєстровано сервер іменування." + +#: ipalib/plugins/entitle.py:476 +msgid "Username" +msgstr "Користувач" + +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" +msgstr "UUID реєстрації (не реалізовано)" + +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" +msgstr "Пароль реєстрації" + +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." +msgstr "Імпортувати сертифікат іменування." + +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" +msgstr "UUID реєстрації" + +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." +msgstr "Виконати повторну синхронізацію локального кешу іменування з сервером іменування." + +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." +msgstr "Іменування синхронізовано." + +#: ipalib/plugins/group.py:26 msgid "" "\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" +"Groups of users\n" "\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" "\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" +"Every group must have a description.\n" "\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" -msgstr "" -"\n" -"Вузли/Комп’ютери\n" -"\n" -"Одному вузлу відповідає один комп’ютер. Вузол може бути використано\n" -"у декількох контекстах:\n" -"- записи служб, пов’язані з вузлом;\n" -"- на вузлі зберігається реєстраційний запис служби вузла\n" -"- вузол може бути використано у правилах Host-based Access Control (HBAC);\n" -"- для кожного зареєстрованого клієнта створюється запис вузла.\n" -"\n" -"РЕЄСТРАЦІЯ:\n" -"\n" -"Передбачено три сценарії реєстрації нового клієнта:\n" -"\n" -"1. Реєстрація повноцінного адміністратора. Відповідний запис вузла може існувати\n" -" або не існувати. Повноцінний адміністратор є учасником ролі hostadmin або\n" -" групи admins.\n" -"2. Реєстрація обмеженого адміністратора. Відповідний запис вузла вже має існувати\n" -" Обмежений адміністратор є учасником розі з правами реєстрації вузлів.\n" -"3. Створення запису вузла з одноразовим паролем.\n" -"\n" -"Реєструвати вузол можна лише один раз. Якщо клієнт було зареєстровано і виникла\n" -"потреба у перереєстрації, запис вузла слід вилучити і створити повторно.\n" -"Зауважте, що повторне створення запису вузла призведе до вилучення\n" -"всіх служб вузла та відкликання всіх сертифікатів SSL, пов’язаних з цими\n" -"службами.\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" "\n" -"У записі вузла додатково можуть зберігатися дані щодо його розташування,\n" -"встановленої на ньому операційної системи тощо.\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" "\n" -"ПРИКЛАДИ:\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" "\n" -" Додавання нового вузла:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" "\n" -" Вилучення вузла:\n" -" ipa host-del test.example.com\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" "\n" -" Додавання нового вузла з одноразовим паролем:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" "\n" -" Додавання нового вузла з випадковим одноразовим паролем:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" "\n" -" Зміна даних щодо вузла:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" "\n" -" Вимикання ключа Kerberos вузла, сертифіката SSL та всіх його служб:\n" -" ipa host-disable test.example.com\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" "\n" -" Додавання вузла, який може керувати таблицею ключів і сертифікатів\n" -" цього вузла:\n" -" ipa host-add-managedby --hosts=test2 test\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" +msgstr "\nГрупи користувачів\n\nКерування групами користувачів. Типово нові групи є групами POSIX. Ви можете\nдодати параметр --nonposix до команди group-add з метою позначення нової\nгрупи як групи не-POSIX. Ви можете скористатися аргументом --posix команди group-mod\nдля перетворення групи не-POSIX на групу POSIX. Групи POSIX не можна\nперетворювати на групи не-POSIX.\n\nКожна група повинна мати опис.\n\nГрупи POSIX повинні мати номер ідентифікатора групи (GID). Передбачено підтримку\nзміни GID, але ця зміна може вплинути на права доступу до ваших файлів. Для\nстворення групи слід вказати GID. IPA створить одну групу автоматично, якщо\nтаку не вказано.\n\nПРИКЛАДИ:\n\n Додавання нової групи:\n ipa group-add --desc='local administrators' localadmins\n\n Додавання нової групи не-POSIX:\n ipa group-add --nonposix --desc='remote administrators' remoteadmins\n\n Перетворити групу не-POSIX на групу posix:\n ipa group-mod --posix remoteadmins\n\n Додати нову групу POSIX з вказаним ідентифікатором групи:\n ipa group-add --gid=500 --desc='unix admins' unixadmins\n\n Додати нову групу POSIX і надати IPA змогу призначити ідентифікатор:\n ipa group-add --desc='printer admins' printeradmins\n\n Вилучення групи:\n ipa group-del unixadmins\n\n Додати групу \"remoteadmins\" до групи \"localadmins\":\n ipa group-add-member --groups=remoteadmins localadmins\n\n Додати список користувачів до групи \"localadmins\":\n ipa group-add-member --users=test1,test2 localadmins\n\n Вилучення користувача з групи \"localadmins\":\n ipa group-remove-member --users=test2 localadmins\n\n Показати інформацію щодо іменованої групи.\n ipa group-show localadmins\n" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" -"\n" -" Вимагати принаймні одну крапку у назві вузла (підтримка назв у форматі вузол.домен)\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "група" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" -msgstr "Слід вказати назву вузла повністю" +#: ipalib/plugins/group.py:81 +msgid "groups" +msgstr "групи" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" -msgstr "Зворотної зони DNS для IP-адреси %(addr)s не знайдено" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" +msgstr "Групи користувачів" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" -msgstr "Таблиця ключів" +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "Група користувачів" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " -msgstr "" -"\n" -" Перевірити, з якою адресою маємо справу, IPv4 чи IPv6.\n" -" " +#: ipalib/plugins/group.py:109 +msgid "Group name" +msgstr "Назва групи" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" -msgstr "некоректне значення IP-адреси" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" +msgstr "Опис групи" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " -msgstr "" -"\n" -" Об’єкт вузла.\n" -" " +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" +msgstr "GID" -#: ipalib/plugins/host.py:231 -msgid "Host name" -msgstr "Назва вузла" +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" +msgstr "GID (за допомогою цього параметра можна встановити значення вручну)" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" -msgstr "Опис цього вузла" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." +msgstr "Створити нову групу." -#: ipalib/plugins/host.py:242 -msgid "Locality" -msgstr "Адреса" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "Додано групу «%(value)s»" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Адреса розташування вузла (наприклад, «Київ, Україна»)" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" +msgstr "Створити як групу, що не відповідає POSIX" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" -msgstr "Розташування вузла (наприклад, «Lab 2»)" +#: ipalib/plugins/group.py:153 +msgid "Delete group." +msgstr "Вилучити групу." -#: ipalib/plugins/host.py:252 -msgid "Platform" -msgstr "Платформа" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "Вилучено групу «%(value)s»" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." +msgstr "Змінити групу." -#: ipalib/plugins/host.py:257 -msgid "Operating system" -msgstr "Операційна система" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Змінено групу «%(value)s»" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9\")" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" +msgstr "змінити на групу POSIX" -#: ipalib/plugins/host.py:262 -msgid "User password" -msgstr "Пароль користувача" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." +msgstr "Шукати групи." -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" -msgstr "Пароль для загального керування реєстраційними записами" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "встановлено відповідність %(count)d групи" +msgstr[1] "встановлено відповідність %(count)d груп" +msgstr[2] "встановлено відповідність %(count)d груп" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" -msgstr "" -"Створити випадковий пароль, який буде використано для загальної реєстрації" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" +msgstr "шукати закриті групи" -#: ipalib/plugins/host.py:271 -msgid "Random password" -msgstr "Випадковий пароль" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." +msgstr "Показати дані щодо іменованої групи." -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" -msgstr "Сертифікат сервера у кодуванні Base-64" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." +msgstr "Додати учасників до групи." -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" -msgstr "Назва реєстраційного запису" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." +msgstr "Вилучити учасників з групи." -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " -msgstr "" -"\n" -" Додати новий запис вузла.\n" -" " +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." +msgstr "Від’єднати керовану групу від користувача." -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" -msgstr "Додано вузол «%(value)s»" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +msgstr "Від’єднати групу «%(value)s» від користувача «%(value)s»" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" -msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" +msgstr "заборонено змінювати записи користувачів" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" -msgstr "пропустити зворотне визначення DNS" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" +msgstr "заборонено змінювати записи груп" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" -msgstr "Додати запис вузла до DNS з цією IP-адресою" - -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" -msgstr "Зони DNS %(zone)s не знайдено" - -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" -msgstr "" -"Запис вузла було додано, але спроба оновлення DNS зазнала невдачі: %(exc)s" - -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " -msgstr "" -"\n" -" Вилучити вузол.\n" -" " - -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" -msgstr "Вилучено вузол «%(value)s»" - -#: ipalib/plugins/host.py:431 -msgid "Remove entries from DNS" -msgstr "Вилучити записи з DNS" - -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " -msgstr "" -"\n" -" Змінити дані щодо вузла.\n" -" " - -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" -msgstr "Змінено вузол «%(value)s»" - -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" -msgstr "Назва реєстраційного запису Kerberos для цього вузла" - -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " -msgstr "" -"\n" -" Шукати вузли.\n" -" " - -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "встановлено відповідність %(count)d вузла" -msgstr[1] "встановлено відповідність %(count)d вузлів" -msgstr[2] "встановлено відповідність %(count)d вузлів" - -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " -msgstr "" -"\n" -" Показати дані щодо вузла.\n" -" " - -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" -msgstr "файл, у якому зберігатимуться дані сертифіката" - -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" -msgstr "Сертифікат збережено у файлі «%(file)s»" - -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " -msgstr "" -"\n" -" Вимкнути ключ Kerberos, сертифікат SSL і всі служби на вузлі.\n" -" " - -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" -msgstr "Вимкнено вузол «%(value)s»" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" +msgstr "Не є керованою групою" -#: ipalib/plugins/host.py:770 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" -" Add hosts that can manage this host.\n" -" " -msgstr "" -"\n" -" Додати записи вузлів, які можуть керувати цим вузлом.\n" -" " - -#: ipalib/plugins/host.py:781 -msgid "" +"Host-based access control\n" "\n" -" Remove hosts that can manage this host.\n" -" " -msgstr "" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" "\n" -" Вилучити записи вузлів, які можуть керувати цим вузлом.\n" -" " - -#: ipalib/plugins/hostgroup.py:20 -msgid "" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" "\n" -"Groups of hosts.\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" -"\n" -"Групи вузлів.\n" -"\n" -"Керування групами вузлів. Корисні для застосування керування\n" -"до декількох вузлів на основі заснованого на вузлах керування\n" -"доступом (Host-based Access Control або HBAC).\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" додавання нової групи вузлів:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Додавання нової групи вузлів:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" -" Додавання учасників до групи вузлів:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" "\n" -" Додавання групи вузлів як учасника іншої групи вузлів:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" -" Вилучення вузла з групи вузлів:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" -" Показ списку групи вузлів:\n" -" ipa hostgroup-show baltimore\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" "\n" -" Вилучення групи вузлів:\n" -" ipa hostgroup-del baltimore\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" +msgstr "\nКерування доступом на основі вузлів\n\nКеруйте тим, хто з яких вузлів і звідки зможе отримувати доступ\nдо певних служб. Ви можете скористатися HBAC для визначення\nкористувачів і груп на вузлі походження запиту зможе отримувати\nдоступ до певної служби або групи служб на вузлі призначення.\n\nВи також можете визначити категорію користувачів, вузли призначення\nта всі вузли походження. У поточній версії можливі варіанти\nобмежено варіантом \"all\", але перелік варіантів може бути\nрозширено у майбутніх версіях.\n\nВузли призначення та вузли походження у правилах HBAC мають бути\nвузлами, керованими IPA.\n\nДоступними службами і групами служб є служби, керовані hbacsvc\nта додатками hbacsvcgroup, відповідно.\n\nПРИКЛАДИ:\n\n Створення правила \"test1\", яке надає всім користувачам доступ\n до вузла \"server\" звідусюди:\n ipa hbacrule-add --usercat=all --srchostcat=all test1\n ipa hbacrule-add-host --hosts=server.example.com test1\n\n Показ властивостей вказаного правила HBAC:\n ipa hbacrule-show test1\n\n Створення правила для певної служби. Це правило надасть користувачу john\n доступ до служби sshd у будь-якій системі звідусіль:\n ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n ipa hbacrule-add-user --users=john john_sshd\n ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n\n Створення правила для нової групи служб. Користувачу john\n надається доступ до служби FTP у будь-якій системі звідусіль:\n ipa hbacsvcgroup-add ftpers\n ipa hbacsvc-add sftp\n ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n ipa hbacrule-add-user --users=john john_ftp\n ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n\n Вимикання вказаного правила HBAC:\n ipa hbacrule-disable test1\n\n Вилучення вказаного правила HBAC:\n ipa hbacrule-del allow_server\n" -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " -msgstr "" -"\n" -" Об’єкт групи вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" +msgstr "Команди керування доступом на основі вузлів" -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "Група вузлів" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "Тип «deny» вважається застарілим." -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "Назва групи вузлів" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "Правило HBAC" -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" -msgstr "Опис цієї групи вузлів" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "правила HBAC" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " -msgstr "" -"\n" -" Додати нову групу вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" +msgstr "Правила HBAC" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" -msgstr "Додано групу вузлів «%(value)s»" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" +msgstr "Правило HBAC" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " -msgstr "" -"\n" -" Вилучити групу вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" +msgstr "Назва правила" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Вилучено групу вузлів «%(value)s»" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "Тип правила (allow)" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " -msgstr "" -"\n" -" Змінити групу вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" +msgstr "Тип правила" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Змінено групу вузлів «%(value)s»" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" +msgstr "Категорія користувачів" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " -msgstr "" -"\n" -" Шукати групи вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" +msgstr "Категорія користувачів, до якої застосовується правило" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "встановлено відповідність %(count)d групи вузлів" -msgstr[1] "встановлено відповідність %(count)d груп вузлів" -msgstr[2] "встановлено відповідність %(count)d груп вузлів" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" +msgstr "Категорія вузлів" -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" -"\n" -" Показати дані щодо групи вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" +msgstr "Категорія вузлів, до якої застосовується правило" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" -"\n" -" Додати записи до групи вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" +msgstr "Категорія вузлів вихідних даних" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " -msgstr "" -"\n" -" Вилучити записи з групи вузлів.\n" -" " +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" +msgstr "Категорія вузлів вихідних даних, до якої застосовується правило" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" -msgstr "" -"\n" -"Безпосередній доступ до додатків через командний інтерфейс закрито, внутрішнє використання команд\n" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" +msgstr "Категорія служб" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " -msgstr "" -"\n" -" Експортувати метадані додатка до вебінтерфейсу.\n" -" " +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" +msgstr "Категорія служб, до якої застосовується правило" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" -msgstr "Назва об’єкта, який слід експортувати" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" +msgstr "Увімкнено" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" -msgstr "Назва методу, який буде експортовано" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" +msgstr "Користувачі" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "Словник закодованих JSON об’єктів IPA" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" +msgstr "Вузли" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "Словник JSON-закодованих методів IPA" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" +msgstr "Групи вузлів" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "Вхід до системи від імені" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" +msgstr "Вузли вихідних даних" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "Атрибут" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" +msgstr "Групи вихідних вузлів" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "Додати запис автомонтування" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" +msgstr "Служби" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "Параметри запису автомонтування" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" +msgstr "Групи служб" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "Додати карту автомонтування" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." +msgstr "Створити правило HBAC." -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "Додати ключ автомонтування" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "Додано правило HBAC «%(value)s»" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "Не вказано" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." +msgstr "Вилучити правило HBAC." -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" -msgstr "Компрометація ключа" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Вилучено правило HBAC «%(value)s»" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" -msgstr "Компрометація CA" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." +msgstr "Змінити правило HBAC." -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" -msgstr "Змінено місце роботи" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "Змінено правило HBAC «%(value)s»" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "Замінено" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." +msgstr "Шукати правила HBAC." -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" -msgstr "Скасування дії" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "встановлено відповідність %(count)d правила HBAC" +msgstr[1] "встановлено відповідність %(count)d правил HBAC" +msgstr[2] "встановлено відповідність %(count)d правил HBAC" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" -msgstr "Власник сертифіката" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." +msgstr "Показати властивості правила HBAC." -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" -msgstr "Вилучити з CRL" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." +msgstr "Увімкнути правило HBAC." -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" -msgstr "Уповноваження відкликано" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "Увімкнено правило HBAC «%(value)s»" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" -msgstr "Компрометація AA" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." +msgstr "Вимкнути правило HBAC." -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." -msgstr "" -"Щоб підтвердити ваш намір відкликати цей сертифікат, виберіть причину зі " -"спадного списку і натисніть кнопку «Відкликати»." +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "Вимкнено правило HBAC «%(value)s»" -#: ipalib/plugins/internal.py:124 -msgid "Note" -msgstr "Нотатка" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" +msgstr "Час доступу" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" -msgstr "Причина відкликання" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." +msgstr "Додати користувачів та групи до правила HBAC." -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." -msgstr "" -"Щоб підтвердити ваш намір відновити цей сертифікат, натисніть кнопку " -"«Відновити»." +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." +msgstr "Вилучити користувачів і групи з правила HBAC." -#: ipalib/plugins/internal.py:128 -msgid "Issued To" -msgstr "Видано для" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." +msgstr "Додати вузли призначення та групи вузлів до правила HBAC." -#: ipalib/plugins/internal.py:129 -msgid "Common Name" -msgstr "Звичайне ім'я" +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." +msgstr "Вилучити вузли призначення та групи вузлів з правила HBAC." -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "Установа" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." +msgstr "Додати початкові вузли та групи вузлів з правила HBAC." -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" -msgstr "Підрозділ установи" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." +msgstr "Вилучити вузли походження та групи вузлів з правила HBAC." -#: ipalib/plugins/internal.py:133 -msgid "Issued By" -msgstr "Видавець" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." +msgstr "Додати служби до правила HBAC." -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "Коректність" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." +msgstr "Вилучити служби та групи служб з правила HBAC." -#: ipalib/plugins/internal.py:135 -msgid "Issued On" -msgstr "Видано" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" +msgstr "\nСлужби HBAC\n\nСлужби PAM, якими може керувати HBAC. Назва, використана тут, має\nвідповідати назві служби, з якою працює PAM.\n\nПРИКЛАДИ:\n\n Додати нову службу HBAC:\n ipa hbacsvc-add tftp\n\n Змінити вже створену службу HBAC:\n ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n\n Шукати служби HBAC. У нашому прикладі буде повернуто два результати\n службу FTP і щойно додану службу tftp:\n ipa hbacsvc-find ftp\n\n Вилучення служби HBAC:\n ipa hbacsvc-del tftp\n\n" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" -msgstr "Строк дії" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" +msgstr "Команди керування доступом на основі вузлів" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" -msgstr "Відбитки" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "Служба HBAC" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "Відбиток SHA1" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" +msgstr "Служби HBAC" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" -msgstr "Відбиток MD5" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" +msgstr "Служби HBAC" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" -msgstr "Введіть Base64-закодований запит щодо підписування сертифіката нижче" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" +msgstr "Служба HBAC" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" -msgstr "Є чинний сертифікат" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "Назва служби" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" -msgstr "Новий сертифікат" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" +msgstr "Опис служби HBAC" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" -msgstr "Сертифікат відкликано" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." +msgstr "Додати нову службу HBAC." -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" -msgstr "Немає чинних сертифікатів" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "Додано службу HBAC «%(value)s»" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" -msgstr "Сертифікат для ${primary_key} ${entity}" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." +msgstr "Вилучити вже створену службу HBAC." -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" -msgstr "Створити сертифікат для ${primary_key} ${entity}" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "Вилучено службу HBAC «%(value)s»" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" -msgstr "Відкликати сертифікат для ${primary_key} ${entity}" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." +msgstr "Змінити службу HBAC." -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" -msgstr "Відновити сертифікат для ${primary_key} ${entity}" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "Змінено службу HBAC «%(value)s»" -#: ipalib/plugins/internal.py:152 -msgid "Name" -msgstr "Назва" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." +msgstr "Шукати служби HBAC." -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" -msgstr "Додати уповноваження" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "встановлено відповідність %(count)d служби HBAC" +msgstr[1] "встановлено відповідність %(count)d служб HBAC" +msgstr[2] "встановлено відповідність %(count)d служб HBAC" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" -msgstr "Додати зону DNS" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." +msgstr "Показати дані щодо служби HBAC." -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" -msgstr "Параметри зони DNS" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" +msgstr "\nГрупи служб HBAC\n\nГрупи служб HBAC можуть містити будь-яку кількість окремих служб\nабо «учасників». Кожна з груп повинна мати опис.\n\nПРИКЛАДИ:\n\n Додавання нової групи служб HBAC:\n ipa hbacsvcgroup-add --desc=\"login services\" login\n\n Додавання учасників до групи служб HBAC:\n ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n\n Показ даних щодо вказаної групи:\n ipa hbacsvcgroup-show login\n\n Додавання нової групи до групи \"login\":\n ipa hbacsvcgroup-add --desc=\"switch users\" login\n ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n\n Вилучення групи служб HBAC:\n ipa hbacsvcgroup-del login\n" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" -msgstr "Додати запис ресурсу DNS" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" +msgstr "група служб HBAC" -#: ipalib/plugins/internal.py:163 -msgid "Resource" -msgstr "Ресурс" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" +msgstr "Група служб HBAC" -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "Дані" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" +msgstr "Група служб HBAC" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" -msgstr "Записи зони DNS" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" +msgstr "Група служб HBAC" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" -msgstr "Додати групу" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" +msgstr "Назва групи служб" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" -msgstr "Параметри групи" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" +msgstr "Опис групи служб HBAC" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" -msgstr "Чи є ця група групою POSIX?" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." +msgstr "Додати нову групу служб HBAC." -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" -msgstr "Додати правило HBAC" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "Додано групу служб HBAC «%(value)s»" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" -msgstr "Активний" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." +msgstr "Вилучити групу служб HBAC." -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" -msgstr "Дозволити" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "Вилучено групу служб HBAC «%(value)s»" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" -msgstr "Відмовити" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." +msgstr "Змінити групу служб HBAC." -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" -msgstr "Неактивний" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "Змінено групу служб HBAC «%(value)s»" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" -msgstr "Стан правила" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." +msgstr "Шукати групу служб HBAC." -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" -msgstr "Хто" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "встановлено відповідність %(count)d групи служб HBAC" +msgstr[1] "встановлено відповідність %(count)d груп служб HBAC" +msgstr[2] "встановлено відповідність %(count)d груп служб HBAC" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" -msgstr "Будь-хто" +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." +msgstr "Показати дані щодо групи служб HBAC." -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" -msgstr "Вказані користувачі і групи" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "Додати учасників до групи служб HBAC." -#: ipalib/plugins/internal.py:183 -msgid "Accessing" -msgstr "Доступ" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "Вилучити учасників з групи служб HBAC." -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" -msgstr "Будь-який вузол" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "\nІмітація використання керування доступом на основі вузлів (HBAC)\n\nПравила HBAC керують тим, хто може отримувати доступ до певних служб на\nпевних вузлах та звідки він може це робити.\nВи можете скористатися HBAC для керування тим, які користувачі або групи\nна початковому вузлі можуть отримувати доступ до служби або групи служб\nна вузлі призначення.\n\nОскільки застосування правил HBAC передбачає використання робочого\nсередовища, це додаток призначено для імітації обробки правил HBAC без\nдоступу до реального середовища.\n\n Перевірити відповідність користувача з початкового вузла до служби на іменованому\n вузлі правилам уможливлення доступу.\n\n ipa hbactest --user= --srchost= --host= --service=\n [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n\n --user, --srchost, --host, and --service є обов’язковими, інші можна не вказувати.\n\n Якщо вказано --rules, імітувати вмикання вказаних правил і перевірити\n можливість входу користувача у разі використання лише цих правил.\n\n Якщо вказано --enabled, додати всі увімкнені правила HBAC до імітації\n\n Якщо вказано --disabled, додати всі вимкнені правила HBAC до імітації\n\n Якщо вказано --nodetail, не повертати даних щодо відповідних і невідповідних\n правил.\n\n Якщо вказано одночасно --rules і --enabled, виконати імітацію --rules _і_\n всіх увімкнених правил IPA.\n\n Якщо не вказано --rules, буде виконано імітацію всіх увімкнених правил IPA.\n\nПРИКЛАДИ:\n\n 1. Використання всіх увімкнених правил HBAC у базі даних IPA:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n --------------------\n Надано доступ: Так\n --------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n відповідне: allow_all\n\n 2. Вимикання докладного резюме застосування правил:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n --------------------\n Надано доступ: Так\n --------------------\n\n 3. Перевірити явно вказані правила HBAC:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n ---------------------\n Надано доступ: Ні\n ---------------------\n невідповідне: my-second-rule\n невідповідне: myrule\n\n 4. Використання всіх увімкнених правил HBAC у базі даних IPA + явно вказаних правил:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n --------------------\n Доступ надано: Так\n --------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n відповідне: allow_all\n\n 5. Перевірка всіх вимкнених правил HBAC у базі даних IPA:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n ---------------------\n Надано доступ: Ні\n ---------------------\n невідповідне: new-rule\n\n 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані правила:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n ---------------------\n Надано доступ: Ні\n ---------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n\n 7. Перевірка всіх (увімкнених і вимкнених) правил HBAC у базі даних IPA:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n --------------------\n Надано доступ: Так\n --------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n невідповідне: new-rule\n відповідне: allow_all\n\n" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "Імітувати використання керування доступом на основі вузлів" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "Відповідні правила" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "Невідповідні правила" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "Некоректні правила або правила, яких не існує" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "Результат імітації" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "Ім'я користувача" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" -msgstr "Вказані вузли і групи" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" +msgstr "Вузол джерела" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" -msgstr "Проміжна служба" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" +msgstr "Вузол призначення" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" -msgstr "Будь-яка служба" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" +msgstr "Служба" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" -msgstr "Вказані служби і групи" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "Правила для перевірки. Якщо не вказано, вважається, що використано --enabled." -#: ipalib/plugins/internal.py:189 -msgid "From" -msgstr "Від" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "Приховати дані щодо того, які правила є відповідними, які не є відповідними і які є некоректними" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" -msgstr "Додати службу HBAC" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" +msgstr "Перевірити всі увімкнені правила IPA [типова поведінка]" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "Додати групу служб HBAC" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" +msgstr "Перевірити всі вимкнені правила IPA" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" -msgstr "Додати вузол" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" +msgstr "Непридатні до обробки правила у --rules" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" -msgstr "Сертифікат вузла" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" +msgstr "Надано доступ: %s" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" -msgstr "Назва вузла" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" +msgstr "\nВузли/Комп’ютери\n\nОдному вузлу відповідає один комп’ютер. Вузол може бути використано\nу декількох контекстах:\n- записи служб, пов’язані з вузлом;\n- на вузлі зберігається реєстраційний запис служби вузла\n- вузол може бути використано у правилах Host-based Access Control (HBAC);\n- для кожного зареєстрованого клієнта створюється запис вузла.\n\nРЕЄСТРАЦІЯ:\n\nПередбачено три сценарії реєстрації нового клієнта:\n\n1. Реєстрація повноцінного адміністратора. Відповідний запис вузла може існувати\n або не існувати. Повноцінний адміністратор є учасником ролі hostadmin або\n групи admins.\n2. Реєстрація обмеженого адміністратора. Відповідний запис вузла вже має існувати\n Обмежений адміністратор є учасником розі з правами реєстрації вузлів.\n3. Створення запису вузла з одноразовим паролем.\n\nРеєструвати вузол можна лише один раз. Якщо клієнт було зареєстровано і виникла\nпотреба у перереєстрації, запис вузла слід вилучити і створити повторно.\nЗауважте, що повторне створення запису вузла призведе до вилучення\nвсіх служб вузла та відкликання всіх сертифікатів SSL, пов’язаних з цими\nслужбами.\n\nУ записі вузла додатково можуть зберігатися дані щодо його розташування,\nвстановленої на ньому операційної системи тощо.\n\nПРИКЛАДИ:\n\n Додавання нового вузла:\n ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n\n Вилучення вузла:\n ipa host-del test.example.com\n\n Додавання нового вузла з одноразовим паролем:\n ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n\n Додавання нового вузла з випадковим одноразовим паролем:\n ipa host-add --os='Fedora 12' --random test.example.com\n\n Зміна даних щодо вузла:\n ipa host-mod --os='Fedora 12' test.example.com\n\n Вимикання ключа Kerberos вузла, сертифіката SSL та всіх його служб:\n ipa host-disable test.example.com\n\n Додавання вузла, який може керувати таблицею ключів і сертифікатів\n цього вузла:\n ipa host-add-managedby --hosts=test2 test\n" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "Параметри вузла" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" +msgstr "Слід вказати назву вузла повністю" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" -msgstr "Зареєстровано?" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" +msgstr "Зворотної зони DNS для IP-адреси %(addr)s не знайдено" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "Реєстрація" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" +msgstr "Таблиця ключів" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" -msgstr "Повна назва вузла" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" +msgstr "некоректне значення IP-адреси" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" -msgstr "Стан" +#: ipalib/plugins/host.py:216 +msgid "host" +msgstr "вузол" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" -msgstr "Маємо ключ Kerberos, вузол передбачено" +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "вузли" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" -msgstr "Вилучити ключ, скасування передбачення" +#: ipalib/plugins/host.py:249 +msgid "Host" +msgstr "Вузол" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" -msgstr "Ключа Kerberos немає" +#: ipalib/plugins/host.py:257 +msgid "Host name" +msgstr "Назва вузла" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" -msgstr "Зареєструвати за допомогою одноразового пароля" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" +msgstr "Опис цього вузла" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" -msgstr "Одноразовий пароль" +#: ipalib/plugins/host.py:268 +msgid "Locality" +msgstr "Адреса" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." -msgstr "Було встановлено одноразовий пароль." +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Адреса розташування вузла (наприклад, «Київ, Україна»)" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" -msgstr "Скасування передбачення ${entity}" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Розташування вузла (наприклад, «Lab 2»)" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" -msgstr "Ви справді бажаєте скасувати передбачення цього вузла?" +#: ipalib/plugins/host.py:278 +msgid "Platform" +msgstr "Платформа" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" -msgstr "Скасування передбачення" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" -msgstr "Додати групу вузлів" +#: ipalib/plugins/host.py:283 +msgid "Operating system" +msgstr "Операційна система" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" -msgstr "Параметри групи вузлів" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9\")" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" -msgstr "Правила квитків Kerberos" +#: ipalib/plugins/host.py:288 +msgid "User password" +msgstr "Пароль користувача" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" -msgstr "Додати мережеву групу" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" +msgstr "Пароль для загального керування реєстраційними записами" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" -msgstr "Параметри мережевої групи" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" +msgstr "Створити випадковий пароль, який буде використано для загальної реєстрації" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" -msgstr "Додати права доступу" +#: ipalib/plugins/host.py:297 +msgid "Random password" +msgstr "Випадковий пароль" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" -msgstr "Профіль" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" +msgstr "Сертифікат сервера у кодуванні Base-64" -#: ipalib/plugins/internal.py:233 -msgid "Target" -msgstr "Ціль" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" +msgstr "Назва реєстраційного запису" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" -msgstr "За підієрархією" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." +msgstr "Додати новий запис вузла." -#: ipalib/plugins/internal.py:236 -msgid "Target Group" -msgstr "Цільова група" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Додано вузол «%(value)s»" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" -msgstr "Об’єкт за типом" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" +msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" -msgstr "Права доступу з некоректним визначенням призначення" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" +msgstr "пропустити зворотне визначення DNS" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "Додати уповноваження" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" +msgstr "Додати запис вузла до DNS з цією IP-адресою" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" -msgstr "Параметри уповноваження" +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "IP-адреса" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" -msgstr "Додати правила паролів" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" +msgstr "Зони DNS %(zone)s не знайдено" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" -msgstr "Правила для паролів" +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" +msgstr "Запис вузла було додано, але спроба оновлення DNS зазнала невдачі: %(exc)s" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "Додати роль" +#: ipalib/plugins/host.py:499 +msgid "Delete a host." +msgstr "Вилучити вузол." -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" -msgstr "Параметри ролей" +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Вилучено вузол «%(value)s»" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" -msgstr "Додати автовизначення служби" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" +msgstr "Вилучити записи з DNS" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" -msgstr "Додати службу" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." +msgstr "Змінити дані щодо вузла." -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" -msgstr "Сертифікат служби" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Змінено вузол «%(value)s»" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" -msgstr "Параметри служби" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" +msgstr "Назва реєстраційного запису Kerberos для цього вузла" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" -msgstr "Передбачення" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." +msgstr "Не можна визначати пароль для вузла з визначеною роллю." -#: ipalib/plugins/internal.py:261 -msgid "Service" -msgstr "Служба" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." +msgstr "Шукати вузли." -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" -msgstr "Маємо ключ Kerberos, службу передбачено" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "встановлено відповідність %(count)d вузла" +msgstr[1] "встановлено відповідність %(count)d вузлів" +msgstr[2] "встановлено відповідність %(count)d вузлів" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" -msgstr "Ви справді бажаєте скасувати передбачення цієї служби?" +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." +msgstr "Показати дані щодо вузла." -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" -msgstr "Додати команду sudo" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" +msgstr "файл, у якому зберігатимуться дані сертифіката" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" -msgstr "Додати групу команд sudo" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" +msgstr "Сертифікат збережено у файлі «%(file)s»" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" -msgstr "Команди" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "Вимкнути ключ Kerberos, сертифікат SSL і всі служби на вузлі." -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" -msgstr "Додати правило sudo" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" +msgstr "Вимкнено вузол «%(value)s»" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" -msgstr "Доступ до цього вузла" +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." +msgstr "Додати записи вузлів, які можуть керувати цим вузлом." -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" -msgstr "Виконання команд" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." +msgstr "Вилучити записи вузлів, які можуть керувати цим вузлом." -#: ipalib/plugins/internal.py:291 -msgid "Any Command" -msgstr "Будь-яка команда" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" +msgstr "\nГрупи вузлів.\n\nКерування групами вузлів. Корисні для застосування керування\nдо декількох вузлів на основі заснованого на вузлах керування\nдоступом (Host-based Access Control або HBAC).\n\nПРИКЛАДИ:\n\n додавання нової групи вузлів:\n ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n\n Додавання нової групи вузлів:\n ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n\n Додавання учасників до групи вузлів:\n ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n\n Додавання групи вузлів як учасника іншої групи вузлів:\n ipa hostgroup-add-member --hostgroups=baltimore maryland\n\n Вилучення вузла з групи вузлів:\n ipa hostgroup-remove-member --hosts=box2 baltimore\n\n Показ списку групи вузлів:\n ipa hostgroup-show baltimore\n\n Вилучення групи вузлів:\n ipa hostgroup-del baltimore\n" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" -msgstr "Вказані команди і групи" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" +msgstr "група вузлів" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" -msgstr "Від імені" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" +msgstr "групи вузлів" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" -msgstr "Будь-яка група" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" +msgstr "Група вузлів" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "Вказані групи" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" +msgstr "Група вузлів" -#: ipalib/plugins/internal.py:297 -msgid "External" -msgstr "Зовнішній" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" +msgstr "Назва групи вузлів" -#: ipalib/plugins/internal.py:300 -msgid "Add User" -msgstr "Додати користувача" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" +msgstr "Опис цієї групи вузлів" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" -msgstr "Параметри облікового запису" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." +msgstr "Додати нову групу вузлів." -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" -msgstr "Параметри контакту" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Додано групу вузлів «%(value)s»" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "Адреса ел. пошти" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "Мережеву групу з назвою «%s» вже створено. Групи вузлів і мережеві групи мають спільний простір назв." -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" -msgstr "Відомості щодо працівника" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." +msgstr "Вилучити групу вузлів." -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" -msgstr "Інша інформація" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Вилучено групу вузлів «%(value)s»" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" -msgstr "Натисніть, щоб вимкнути" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." +msgstr "Змінити групу вузлів." -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" -msgstr "Натисніть, щоб задіяти" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Змінено групу вузлів «%(value)s»" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" -msgstr "Помилка під час спроби зміни стану облікового запису" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." +msgstr "Шукати групи вузлів." -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "Скинути пароль" +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "встановлено відповідність %(count)d групи вузлів" +msgstr[1] "встановлено відповідність %(count)d груп вузлів" +msgstr[2] "встановлено відповідність %(count)d груп вузлів" -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "Новий пароль" +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." +msgstr "Показати дані щодо групи вузлів." -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" -msgstr "Повторити пароль" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." +msgstr "Додати записи до групи вузлів." -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" -msgstr "Зміну пароля завершено" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." +msgstr "Вилучити записи з групи вузлів." -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" -msgstr "Паролі мають збігатися" +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" +msgstr "Назва об’єкта, який слід експортувати" -#: ipalib/plugins/internal.py:319 +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" +msgstr "Назва методу, який буде експортовано" + +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" +msgstr "Назва команди для експортування" + +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" +msgstr "Словник закодованих JSON об’єктів IPA" + +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" +msgstr "Словник JSON-закодованих методів IPA" + +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" +msgstr "Словник закодованих JSON команд IPA" + +#: ipalib/plugins/internal.py:147 +msgid "" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI
follow these directions to " +"configure your browser." +msgstr "Ваш квиток Kerberos втратив чинність. Будь ласка, запустіть kinit and then click 'Retry'. If this is your first time running the IPA Web UI follow these directions to configure your browser." + +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." +msgstr "Квиток Kerberos вже не є коректним." + +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" +msgstr "Додати ${other_entity} запуск від імені до ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" +msgstr "Додати групи запуску від імені до ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" +msgstr "Додати ${other_entity}, керування ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" +msgstr "Додати ${other_entity} до ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" +msgstr "Додано дозвіл ${other_entity} до ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" +msgstr "Додано заборону ${other_entity} до ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" +msgstr "Додати ${entity} ${primary_key} до ${other_entity}" + +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" +msgstr "Додати ${other_entity} джерела до ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" +msgstr "Безпосередня участь" + +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" +msgstr "Опосередкована участь" + +#: ipalib/plugins/internal.py:164 +msgid "No entries." +msgstr "Немає записів." + +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." +msgstr "Показано записи від ${start} до ${end} з ${total} записів." + +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" +msgstr "Вилучити ${other_entity} запуску від імені з ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" +msgstr "Вилучити групи запуску від імені з ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" +msgstr "Вилучити ${other_entity}, керування ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" +msgstr "Вилучити ${other_entity} з ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" +msgstr "Вилучити дозвіл ${other_entity} з ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" +msgstr "Вилучити заборону ${other_entity} з ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" +msgstr "Вилучити ${entity} ${primary_key} з ${other_entity}" + +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" +msgstr "Вилучити ${other_entity} джерела з ${entity} ${primary_key}" + +#: ipalib/plugins/internal.py:176 +msgid "Show Results" +msgstr "Показати результати" + +#: ipalib/plugins/internal.py:179 msgid "Add" msgstr "Додати" -#: ipalib/plugins/internal.py:320 +#: ipalib/plugins/internal.py:180 msgid "Add and Add Another" msgstr "Додати і додати ще" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "Додати і змінити" - -#: ipalib/plugins/internal.py:322 +#: ipalib/plugins/internal.py:181 msgid "Add and Close" msgstr "Додати і закрити" -#: ipalib/plugins/internal.py:323 +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" +msgstr "Додати і змінити" + +#: ipalib/plugins/internal.py:183 msgid "Add Many" msgstr "Додати багато" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "Повернутися до списку" - -#: ipalib/plugins/internal.py:325 +#: ipalib/plugins/internal.py:184 msgid "Cancel" msgstr "Скасувати" -#: ipalib/plugins/internal.py:326 +#: ipalib/plugins/internal.py:185 msgid "Close" msgstr "Закрити" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" -msgstr "Зареєструвати" - -#: ipalib/plugins/internal.py:328 +#: ipalib/plugins/internal.py:186 msgid "Find" msgstr "Знайти" -#: ipalib/plugins/internal.py:329 +#: ipalib/plugins/internal.py:187 msgid "Get" msgstr "Отримати" -#: ipalib/plugins/internal.py:330 +#: ipalib/plugins/internal.py:188 msgid "Issue" msgstr "Створити" -#: ipalib/plugins/internal.py:331 +#: ipalib/plugins/internal.py:189 msgid "OK" msgstr "Гаразд" -#: ipalib/plugins/internal.py:332 -msgid "Reset" -msgstr "Скинути" - -#: ipalib/plugins/internal.py:333 +#: ipalib/plugins/internal.py:190 msgid "Delete" msgstr "Вилучити" -#: ipalib/plugins/internal.py:334 +#: ipalib/plugins/internal.py:191 +msgid "Reset" +msgstr "Скинути" + +#: ipalib/plugins/internal.py:192 msgid "Restore" msgstr "Відновити" -#: ipalib/plugins/internal.py:335 +#: ipalib/plugins/internal.py:193 msgid "Retry" msgstr "Повторити" -#: ipalib/plugins/internal.py:336 +#: ipalib/plugins/internal.py:194 msgid "Revoke" msgstr "Відкликати" -#: ipalib/plugins/internal.py:337 +#: ipalib/plugins/internal.py:195 msgid "Update" msgstr "Оновити" -#: ipalib/plugins/internal.py:338 +#: ipalib/plugins/internal.py:196 msgid "View" msgstr "Перегляд" -#: ipalib/plugins/internal.py:341 +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" +msgstr "Згорнути всі" + +#: ipalib/plugins/internal.py:200 +msgid "Expand All" +msgstr "Розгорнути всі" + +#: ipalib/plugins/internal.py:201 +msgid "General" +msgstr "Загальне" + +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" +msgstr "Параметри профілю" + +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" +msgstr "Параметри ${primary_key} ${entity}" + +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" +msgstr "Повернутися до початку" + +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" +msgstr "${entity} успішно додано" + +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" +msgstr "Додати ${entity}" + +#: ipalib/plugins/internal.py:209 msgid "Available" msgstr "Доступний" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." -msgstr "" -"На цій сторінці виявлено незбережені зміни. Будь ласка, збережіть зміни або " -"скасуйте їх." +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." +msgstr "Деякі з дій не вдалося виконати." -#: ipalib/plugins/internal.py:343 -msgid "Dirty" -msgstr "Брудно" +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" +msgstr "Помилка під час обробки" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." -msgstr "Приховати вже зареєстровані." +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" +msgstr "Підтвердження" + +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." +msgstr "На цій сторінці виявлено незбережені зміни. Будь ласка, збережіть зміни або скасуйте їх." -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." -msgstr "Виберіть ${entity} для вилучення." +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" +msgstr "Незбережені зміни" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." -msgstr "Вилучити ${entity}." +#: ipalib/plugins/internal.py:215 +msgid "Hide details" +msgstr "Сховати подробиці" -#: ipalib/plugins/internal.py:347 +#: ipalib/plugins/internal.py:216 msgid "Prospective" msgstr "Очікуваний" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" -msgstr "Керується" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" +msgstr "Переспрямування" -#: ipalib/plugins/internal.py:351 -msgid "Member" -msgstr "Учасник" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." +msgstr "Виберіть записи, які слід вилучити." -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" -msgstr "Опосередкований учасник" +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" +msgstr "Вилучити ${entity}" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" -msgstr "Учасник" +#: ipalib/plugins/internal.py:220 +msgid "Show details" +msgstr "Показати подробиці" + +#: ipalib/plugins/internal.py:221 +msgid "Validation error" +msgstr "Помилка під час перевірки" + +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." +msgstr "У форму введення даних не введено деякі з даних або у формі містяться некоректні записи." -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" -msgstr "Опосередкований учасник" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" +msgstr "Помилка HTTP" + +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" +msgstr "Внутрішня помилка" + +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" +msgstr "Помилка IPA" + +#: ipalib/plugins/internal.py:229 +msgid "No response" +msgstr "Немає відповіді" + +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" +msgstr "Невідома помилка" + +#: ipalib/plugins/internal.py:231 +msgid "URL" +msgstr "Адреса" + +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" +msgstr "${primary_key} керується:" + +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" +msgstr "Учасники ${primary_key}:" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" +msgstr "${primary_key} міститься у:" + +#: ipalib/plugins/internal.py:239 msgid "Settings" msgstr "Параметри" -#: ipalib/plugins/internal.py:358 +#: ipalib/plugins/internal.py:240 msgid "Search" msgstr "Пошук" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" -msgstr "Швидкі посилання" +#: ipalib/plugins/internal.py:242 +msgid "False" +msgstr "Ні" -#: ipalib/plugins/internal.py:363 -msgid "Select All" -msgstr "Вибрати все" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" +msgstr "Вхід до системи від імені" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" -msgstr "Скасувати вибір всього" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" +msgstr "Атрибут" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" -msgstr "Ви справді бажаєте вилучити позначені записи?" +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" +msgstr "Параметри запису автомонтування" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." -msgstr "" -"За запитом повернуто більше за налаштоване максимальне значення результатів." -" Показано лише перші ${counter} результатів." +#: ipalib/plugins/internal.py:256 +msgid "Map Type" +msgstr "Тип карти" -#: ipalib/plugins/internal.py:370 -msgid "General" -msgstr "Загальне" +#: ipalib/plugins/internal.py:257 +msgid "Direct" +msgstr "Безпосередній" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" -msgstr "Параметри профілю" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" +msgstr "Опосередкований" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" -msgstr "Параметри ${primary_key} ${entity}" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" +msgstr "Компрометація AA" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" -msgstr "Повернутися до початку" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" +msgstr "Змінено місце роботи" -#: ipalib/plugins/internal.py:377 -msgid "Policy" -msgstr "Правила" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" +msgstr "Компрометація CA" -#: ipalib/plugins/internal.py:378 -msgid "Audit" -msgstr "Аудит" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "Власник сертифіката" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" -msgstr "Сервер IPA" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "Скасування дії" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" -msgstr "Sudo" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" +msgstr "Звичайне ім'я" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" -msgstr "Керування доступом на основі вузлів" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" +msgstr "Введіть Base64-закодований запит щодо підписування сертифіката нижче" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" -msgstr "Керування доступом на основі ролей" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "Строк дії" -#: ipalib/plugins/internal.py:383 -msgid "Automount" -msgstr "Автоматичне монтування" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "Відбитки" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" -msgstr "Додати ${other_entity} до ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" +msgstr "Створити сертифікат для ${primary_key} ${entity}" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" -msgstr "${other_entity} зареєстровано у ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" +msgstr "Видавець" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" -msgstr "${entity} ${primary_key} зареєстровано у наступному ${other_entity}" +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "Видано" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" -msgstr "Вилучити ${other_entity} з ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "Видано для" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" -msgstr "Текст не відповідає шаблону поля" +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" +msgstr "Компрометація ключа" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." -msgstr "" -"Ваш квиток Kerberos втратив чинність. Будь ласка, запустіть kinit and then " -"click 'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" +msgstr "Відбиток MD5" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" -msgstr "Словник перекладених повідомлень" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "Немає чинних сертифікатів" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" -msgstr "" -"\n" -"Додаток сервера для Kerberos.\n" -"\n" -"Є обгорткою до прив’язок python-kerberos та python-krbV.\n" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "Новий сертифікат" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " -msgstr "" -"\n" -" Додаток сервера Kerberos.\n" -"\n" -" Цей додаток є інтерфейсом до прив’язок «krbV» (зокрема прив’язок\n" -" «kerberos»). Важливим є те, що цей додаток виправляє кодування і\n" -" декодування Unicode значень вхідних/вихідних прив’язок.\n" -" " +#: ipalib/plugins/internal.py:278 +msgid "Note" +msgstr "Нотатка" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " -msgstr "" -"\n" -" Повернути «krbV.CCache» для типового кешу реєстраційних даних.\n" -" " +#: ipalib/plugins/internal.py:279 +msgid "Organization" +msgstr "Установа" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " -msgstr "" -"\n" -" Повернути «krb5.Principal» для типового кешу реєстраційних даних.\n" -" " +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "Підрозділ установи" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " -msgstr "" -"\n" -" Повернути «krbV.CCache» для кешу реєстраційних даних «ccname».\n" -" " +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "Уповноваження відкликано" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " -msgstr "" -"\n" -" Повернути «krb5/Principal» для кешу реєстраційних даних «ccname».\n" -" " +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "Причина відкликання" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" -"\n" -" Повернути типову назву файла ccache.\n" -"\n" -" Буде повернуто дані у форматі «/tmp/krb5cc_500».\n" -"\n" -" Не поверне жодних корисних даних, якщо використано на сервері\n" -" під час обробки запиту.\n" -" " +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "Вилучити з CRL" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" -"\n" -" Повернути основну назву у типовому кеші реєстраційних даних.\n" -"\n" -" Дані буде повернуто у форматі «admin@EXAMPLE.COM». Якщо кешу реєстраційних\n" -" даних для відповідного користувача не існує, буде повернуто None.\n" -"\n" -" Не поверне жодних корисних даних, якщо використано на сервері\n" -" під час обробки запиту.\n" -" " +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "Відновити сертифікат для ${primary_key} ${entity}" -#: ipalib/plugins/kerberos.py:91 +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " -msgstr "" -"\n" -" Повернути область дії з типового кешу реєстраційних даних.\n" -"\n" -" Дані буде повернуто у форматі «EXAMPLE.COM». Якщо кешу реєстраційних\n" -" даних для відповідного користувача не існує, буде повернуто None.\n" -"\n" -" Не поверне жодних корисних даних, якщо використано на сервері\n" -" під час обробки запиту.\n" -" " +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." +msgstr "Щоб підтвердити ваш намір відновити цей сертифікат, натисніть кнопку «Відновити»." -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " -msgstr "" -"\n" -" Повернути основні дані з файла кешу реєстраційних даних у «ccname».\n" -"\n" -" Дані буде повернуто у форматі «admin@EXAMPLE.COM».\n" -" " +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" +msgstr "Відкликати сертифікат для ${primary_key} ${entity}" -#: ipalib/plugins/kerberos.py:111 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " -msgstr "" -"\n" -" Повернути область дії з файла кешу реєстраційних даних у «ccname».\n" -"\n" -" Дані буде повернуто у форматі «EXAMPLE.COM».\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "Щоб підтвердити ваш намір відкликати цей сертифікат, виберіть причину зі спадного списку і натисніть кнопку «Відкликати»." -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" -msgstr "" -"\n" -"Правила квитків Kerberos\n" -"\n" -"Передбачено єдині правила квитків Kerberos. Ці правила визначають\n" -"максимальний строк дії квитка та максимальний вік оновлення, період,\n" -"протягом якого квиток можна поновити.\n" -"\n" -"Крім того, ви можете створити правила для окремих користувачів\n" -"шляхом визначення імені користувача.\n" -"\n" -"Щоб зміни у загальних правилах набули чинності, слід перезапустити\n" -"службу KDC. Це можна зробити за допомогою такої команди:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Зміни у окремих правилах для користувачів набудуть чинності негайно\n" -"для квитків нових запитів (наприклад, у відповідь на наступний\n" -"запуск користувачем kinit).\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Показ поточних правил квитків Kerberos:\n" -" ipa krbtpolicy-show\n" -"\n" -" Відновити типові правила:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Зміна правил на 8-годинний строк дії, 1-денний строк поновлення:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Показ поточних правил квитків Kerberos для користувача «admin»:\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Відновити окремі правила для користувача «admin»:\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Зміна окремих правил для користувача «admin»:\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" +msgstr "Сертифікат відкликано" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " -msgstr "" -"\n" -" Об’єкт правила квитків Kerberos\n" -" " +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" +msgstr "Відбиток SHA1" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" -msgstr "Правила квитків Kerberos" +#: ipalib/plugins/internal.py:291 +msgid "Superseded" +msgstr "Замінено" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" -msgstr "Ім'я користувача" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" +msgstr "Не вказано" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" -msgstr "Керування правилами обробки квитків певного користувача" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" +msgstr "Є чинний сертифікат" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" -msgstr "Макс. строк дії" +#: ipalib/plugins/internal.py:294 +msgid "Validity" +msgstr "Коректність" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" -msgstr "Максимальний строк дії квитка (у секундах)" +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" +msgstr "Сертифікат для ${primary_key} ${entity}" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" -msgstr "Макс. вік поновлення" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" +msgstr "Параметри групи" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" -msgstr "Максимальний вік, протягом якого можливе поновлення (у секундах)" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" +msgstr "Параметри пошуку" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " -msgstr "" -"\n" -" Змінити правила квитків Kerberos.\n" -" " +#: ipalib/plugins/internal.py:300 +msgid "User Options" +msgstr "Параметри користувача" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " -msgstr "" -"\n" -" Показати поточні правила квитків Kerberos.\n" -" " +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "Дані" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " -msgstr "" -"\n" -" Відновити типові правила квитків Kerberos.\n" -" " +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." +msgstr "Запис DNS було вилучено, оскільки у ньому не містилося жодних даних." -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" -msgstr "" -"\n" -"Перехід на IPA\n" -"\n" -"Перенесення записів користувачів і груп з сервера LDAP на IPA.\n" -"\n" -"Виконує запит LDAP до віддаленого сервера для пошуку записів\n" -"користувачів та груп у контейнері. З метою перенесення паролів вам\n" -"слід виконати прив’язку від імені користувача, який може читати\n" -"атрибут userPassword на віддаленому сервері. Коло таких користувачів\n" -"зазвичай обмежене адміністраторами найвищого рівня, зокрема\n" -"cn=Directory Manager у 389-ds (типовий користувач для прив’язки).\n" -"\n" -"Типовим контейнером записів користувачів є ou=People.\n" -"\n" -"Типовим контейнером записів груп є ou=Groups.\n" -"\n" -"Записи користувачів і груп, які вже створено на сервері IPA, буде\n" -"проігноровано.\n" -"\n" -"Спосіб зберігання записів учасників груп визначається двома схемами\n" -"LDAP: RFC2307 та RFC2307bis. У схемі RFC2307bis для визначення учасників\n" -"груп використовуються поля member та uniquemember, у схемі RFC2307 —\n" -"лише memberUid. Типовою є схема RFC2307bis.\n" -"\n" -"У перенесених записів користувачів не буде реєстраційних записів\n" -"Kerberos, збережено буде лише пароль LDAP. Щоб завершити процес\n" -"переходу, користувачам слід буде перейти за адресою\n" -"http://ipa.example.com/ipa/migration і пройти розпізнавання за\n" -"паролем LDAP з метою створення реєстраційного запису Kerberos.\n" -"\n" -"Типово перехід вимкнено. Скористайтеся командою ipa config-mod,\n" -"щоб увімкнути його:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Найпростіший перехід з типовими параметрами:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Визначення контейнера записів користувачів і груп. Можна скористатися\n" -" для перенесення даних користувачів і груп з сервера IPA версії 1:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" +msgstr "Інші типи записів" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." -msgstr "" -"Реєстраційний запис Kerberos %s вже існує. Скористайтеся командою «ipa user-" -"mod», щоб встановити його параметри вручну." +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." +msgstr "Вас буде переспрямовано до зони DNS." -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." -msgstr "" -"Не вдалося додати користувача до типової групи. Додати користувача вручну " -"можна за допомогою команди «ipa group-add-member»." +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" +msgstr "Стандартні типи записів" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " -msgstr "" -"\n" -" Перетворити імена користувачів у атрибути учасників для роботи у IPA.\n" -" " +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" +msgstr "Записи зони DNS" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." -msgstr "Некоректна адреса LDAP." +#: ipalib/plugins/internal.py:311 +msgid "Record Type" +msgstr "Тип запису" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " -msgstr "" -"\n" -" Перенести дані користувачів і груп з DS до IPA.\n" -" " +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" +msgstr "Параметри зони DNS" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "URI LDAP" +#: ipalib/plugins/internal.py:317 +msgid "Account" +msgstr "Обліковий запис" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" -msgstr "URI LDAP сервера DS, з якого здійснюватиметься міграція" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" +msgstr "Сертифікати" -#: ipalib/plugins/migration.py:272 -msgid "bind password" -msgstr "пароль прив’язки" +#: ipalib/plugins/internal.py:320 +msgid "Consume" +msgstr "Використання" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" -msgstr "DN для прив'язки" +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" +msgstr "Іменування використання" -#: ipalib/plugins/migration.py:285 -msgid "User container" -msgstr "Контейнер користувачів" +#: ipalib/plugins/internal.py:323 +msgid "Download" +msgstr "Звантажити" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" -msgstr "RDN контейнера користувачів у DS" +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" +msgstr "Звантажити сертифікат" -#: ipalib/plugins/migration.py:292 -msgid "Group container" -msgstr "Контейнер груп" +#: ipalib/plugins/internal.py:326 +msgid "Import" +msgstr "Імпортувати" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" -msgstr "RDN контейнера груп у DS" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" +msgstr "Імпортувати сертифікат" -#: ipalib/plugins/migration.py:299 -msgid "User object class" -msgstr "Клас об’єктів користувача" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" +msgstr "Нижче вкажіть закодований у Base64 сертифікат іменування:" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" -msgstr "" -"Відокремлений комами список класів об’єктів, використаних для пошуку записів" -" користувачів у DS" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." +msgstr "Завантаження…" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" -msgstr "Клас об’єктів групи" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." +msgstr "Без сертифіката." -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" -msgstr "" -"Відокремлений комами список класів об’єктів, використаних для пошуку записів" -" груп у DS" +#: ipalib/plugins/internal.py:332 +msgid "Register" +msgstr "Зареєструватися" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" -msgstr "Схема LDAP" +#: ipalib/plugins/internal.py:333 +msgid "Registration" +msgstr "Реєстрація" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" -msgstr "" -"Схема, використана на сервері LDAP. Підтримувані значення: RFC2307 і " -"RFC2307bis. Типове значення: RFC2307bis" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" +msgstr "Стан" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" -msgstr "" -"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує " -"обробку." +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" +msgstr "Параметри групи" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." -msgstr "Списки об’єктів, міграцію яких виконано; впорядкований за типами." +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" +msgstr "Чи є ця група групою POSIX?" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "" -"Списки об’єктів, міграцію яких не вдалося виконати; впорядкований за типами." +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" +msgstr "Активний" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." -msgstr "False, якщо режим міграції було вимкнено." +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" +msgstr "Будь-який вузол" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" -msgstr "" -"Список %s, відокремлених комами, які слід виключити з процесу міграції" +#: ipalib/plugins/internal.py:344 +msgid "Any Service" +msgstr "Будь-яка служба" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" -msgstr "" -"список результатів пошуку об’єктів міграції\n" -"було обрізано сервером; ймовірно,\n" -"процес міграції не завершено\n" +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" +msgstr "Будь-хто" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." -msgstr "" -"Режим міграції вимкнено. Скористайтеся командою «ipa config-mod», щоб " -"увімкнути його." +#: ipalib/plugins/internal.py:346 +msgid "Accessing" +msgstr "Доступ" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." -msgstr "" -"Міграцію записів паролів здійснено у форматі до хешування.\n" -"IPA не вдасться створити ключі Kerberos, якщо не буде\n" -"надано текстових паролів. Всім користувачам з перенесеними\n" -"записами, доведеться пройти розпізнавання на\n" -"https://your.domain/ipa/migration/ до того, як вони зможуть\n" -"скористатися обліковими записами Kerberos." - -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " -msgstr "" -"\n" -" Викликати get_options базового класу і додати параметри «exclude»\n" -" для кожного з типу об’єктів, які переносяться.\n" -" " +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" +msgstr "Неактивний" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " -msgstr "" -"\n" -" Перетворити всі значення параметра «exclude» у нижній регістр.\n" -"\n" -" Також порожні параметри List перетворюються на None, але додаток\n" -" перенесення не обробляє таких даних — їх буде знову перетворено на порожні\n" -" списки.\n" -" " +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" +msgstr "Стан правила" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " -msgstr "" -"\n" -" Перенести об’єкти з DS до LDAP.\n" -" " +#: ipalib/plugins/internal.py:349 +msgid "Via Service" +msgstr "Проміжна служба" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" -msgstr "Контейнера для %(container)s не знайдено" +#: ipalib/plugins/internal.py:350 +msgid "From" +msgstr "Від" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" -msgstr "" -"\n" -"Інші додатки\n" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" +msgstr "Вказані вузли і групи" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" -msgstr "Показати змінні середовища" +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" +msgstr "Вказані служби і групи" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" -msgstr "%(count)d змінних" +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" +msgstr "Вказані користувачі і групи" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." -msgstr "" -"отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" +msgstr "Хто" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" -msgstr "Кількість змінних env (>= count)" +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" +msgstr "Доступ заборонено" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" -msgstr "Кількість повернутих змінних (<= загальної)" +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" +msgstr "Надано доступ" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" -msgstr "Показати список завантажених додатків" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" +msgstr "Включення вимкнено" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "завантажено %(count)d додаток" -msgstr[1] "завантажено %(count)d додатки" -msgstr[2] "завантажено %(count)d додатків" +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" +msgstr "Включення увімкнено" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" -msgstr "Кількість завантажених додатків" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" +msgstr "Тест HBAC" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" -msgstr "" -"\n" -"Мережеві групи\n" -"\n" -"Мережева група — група для перевірки прав доступу. Може містити значення\n" -"користувачів та вузлів.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання нової мережевої групи:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Додавання учасників до мережевої групи:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Вилучення користувача з мережевої групи:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Показ даних щодо мережевої групи:\n" -" ipa netgroup-show admins\n" -"\n" -" Вилучення мережевої групи:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:367 +msgid "Matched" +msgstr "Встановлено відповідність" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" -msgstr "Вузол-учасник" +#: ipalib/plugins/internal.py:368 +msgid "New Test" +msgstr "Новий текст" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " -msgstr "" -"\n" -" Об’єкт мережевої групи.\n" -" " +#: ipalib/plugins/internal.py:369 +msgid "Rules" +msgstr "Правила" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" -msgstr "Мережеві групи" +#: ipalib/plugins/internal.py:370 +msgid "Run Test" +msgstr "Запустити тест…" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" -msgstr "Назва мережевої групи" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" +msgstr "Вкажіть зовнішній ${entity}" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" -msgstr "Опис мережевої групи" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" +msgstr "Невідповідний" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" -msgstr "Назва домену NIS" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" +msgstr "Сертифікат вузла" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" -msgstr "Унікальний ід. IPA" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" +msgstr "Назва вузла" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " -msgstr "" -"\n" -" Додати нову групу у мережі.\n" -" " +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" +msgstr "Вилучити ключ, скасування передбачення" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" -msgstr "Додано групу у мережі «%(value)s»" +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" +msgstr "Параметри вузла" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " -msgstr "" -"\n" -" Вилучити групу у мережі.\n" -" " +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" +msgstr "Зареєстровано?" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" -msgstr "Вилучено групу у мережі «%(value)s»" +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" +msgstr "Реєстрація" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " -msgstr "" -"\n" -" Змінити групу у мережі.\n" -" " +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" +msgstr "Повна назва вузла" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" -msgstr "Змінено групу у мережі «%(value)s»" +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" +msgstr "Ключ Kerberos" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " -msgstr "" -"\n" -" Знайти групу у мережі.\n" -" " +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "Ключа Kerberos немає" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "встановлено відповідність %(count)d групи" -msgstr[1] "встановлено відповідність %(count)d груп" -msgstr[2] "встановлено відповідність %(count)d груп" +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" +msgstr "Маємо ключ Kerberos, вузол передбачено" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " -msgstr "" -"\n" -" Показати дані щодо групи у мережі.\n" -" " +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" +msgstr "Одноразовий пароль" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " -msgstr "" -"\n" -" Додати учасників до групи у мережі.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" +msgstr "Одноразового пароля немає" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " -msgstr "" -"\n" -" Вилучити учасників з групи у мережі.\n" -" " +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" +msgstr "Є одноразовий пароль" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" -msgstr "" -"\n" -"Встановлення пароля користувача\n" -"\n" -"Якщо якась стороння особа змінює пароль користувача (наприклад його\n" -"відновлює допоміжний персонал), новий пароль має бути змінено під\n" -"час його першого використання. Метою такого способу дій є забезпечення\n" -"ситуації, коли пароль буде відомий лише тому, хто ним користується.\n" -"\n" -"Правила щодо паролів IPA керують частотою зміни пароля, вимогами щодо\n" -"складності пароля та об’ємом журналу зміни паролів.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Щоб скинути ваш власний пароль, виконайте команду:\n" -" ipa passwd\n" -"\n" -" Щоб змінити пароль іншого користувача, виконайте команду:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" +msgstr "Скинути ОП" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " -msgstr "" -"\n" -" Встановити пароль користувача\n" -" " +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "Скинути одноразовий пароль" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" -msgstr "Змінити пароль «%(value)s»" +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "Одноразовий пароль" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " -msgstr "" -"\n" -" Виконати дію passwd.\n" -"\n" -" dn не слід передавати як аргумент ключового слова після побудови\n" -" цим методом.\n" -"\n" -" Повертає запис\n" -"\n" -" :параметр principal: реєстраційне ім’я або основні дані користувача;\n" -" :параметр password: новий пароль.\n" -" " +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "Встановити одноразовий пароль" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" -msgstr "" -"\n" -"Права доступу\n" -"\n" -"Права доступу надають змогу точно налаштувати уповноваження. Права доступу\n" -"визначаються звичайним текстом у форматі правила керування доступом 389-ds\n" -"або інструкції (ACI). Права доступу надають можливість виконувати певне\n" -"завдання, зокрема додавання запису користувача, внесення змін до запису\n" -"групи.\n" -"\n" -"Права доступу можуть містити інші права доступу.\n" -"\n" -"* Право доступу надає доступ до читання, запису, додавання або вилучення.\n" -"* Уповноваження поєднують у собі подібні права доступу (наприклад всі\n" -" права доступу, потрібні для додавання запису користувача).\n" -"* Роль надає користувачам, групам, вузлам або групам вузлів певний набір\n" -" уповноважень.\n" -"\n" -"Право доступу складається з декількох різних частин:\n" -"\n" -"1. Назви права доступу.\n" -"2. Призначення права доступу.\n" -"3. Прав, які надаються.\n" -"\n" -"Права визначають набір дозволених дій і можуть складатися з одного або\n" -"декількох таких записів:\n" -"1. write — запис одного або декількох атрибутів\n" -"2. read — читання одного або декількох атрибутів\n" -"3. add — додавання нового запису до ієрархії\n" -"4. delete — вилучення вже створеного запису\n" -"5. all — надання всіх прав доступу\n" -"\n" -"Типово, право доступу до читання надається для більшості атрибутів, отже\n" -"право доступу «read» не використовуватиметься часто.\n" -"\n" -"Зауваження щодо відмінностей між атрибутами та записами. Права доступу\n" -"є незалежними, отже можливість додавання запису користувача не означає\n" -"можливості вносити зміни до доданого запису.\n" -"\n" -"Передбачено декілька можливих цілей:\n" -"1. type: тип об’єкта (user, group тощо).\n" -"2. memberof: учасник групи користувачів або вузлів\n" -"3. filter: фільтр LDAP\n" -"4. subtree: фільтр LDAP, що визначає частину DIT LDAP DIT. Надмножина\n" -" цілі «type».\n" -"5. targetgroup: надати доступ до внесення змін до запису певної групи\n" -" (зокрема до керування участю у групі)\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання права доступу до створення записів користувачів:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Додавання права доступу до можливості керування участю у групі:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "Скасування передбачення" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "Ви справді бажаєте скасувати передбачення цього вузла?" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "Скасування передбачення ${entity}" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "Параметри групи вузлів" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "Правила квитків Kerberos" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "Параметри мережевої групи" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "Профіль" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "Права доступу з некоректним визначенням призначення" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "Ціль" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "Параметри уповноваження" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "Правила для паролів" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "Параметри ролей" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" -msgstr "Тип прав доступу" +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "Сертифікат служби" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " -msgstr "" -"\n" -" Об’єкт прав доступу.\n" -" " +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "Параметри служби" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" -msgstr "Назва прав доступу" +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "Передбачення" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" -msgstr "" -"Відокремлений комами список прав доступу, які слід надати (read, write, add," -" delete, all)" +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "Ви справді бажаєте скасувати передбачення цієї служби?" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" -msgstr "" -"Тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup " -"(група вузлів), service (служба), netgroup (група у мережі), dns)" +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "Маємо ключ Kerberos, службу передбачено" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" -msgstr "Учасник групи" +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "Групи" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" -msgstr "Цільові учасники групи" +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "Команди" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" -msgstr "Піддерево, до якого буде застосовано права доступу" +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "Дозволити" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" -msgstr "Група користувачів, до якої буде застосовано права доступу" +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "Будь-яка команда" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " -msgstr "" -"\n" -" Додати нові права доступу.\n" -" " +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "Будь-яка група" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" -msgstr "Додано права доступу «%(value)s»" +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "Виконання команд" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " -msgstr "" -"\n" -" Вилучити права доступу.\n" -" " +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "Відмовити" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" -msgstr "Вилучено права доступу «%(value)s»" +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "Зовнішній" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " -msgstr "" -"\n" -" Змінити права доступу.\n" -" " +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "Доступ до цього вузла" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" -msgstr "Змінено права доступу «%(value)s»" +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "Параметри" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " -msgstr "" -"\n" -" Знайти права доступу.\n" -" " +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "Від імені" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "встановлено відповідність %(count)d запису" -msgstr[1] "встановлено відповідність %(count)d записів" -msgstr[2] "встановлено відповідність %(count)d записів" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "Вказані команди і групи" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " -msgstr "" -"\n" -" Показати дані щодо прав доступу.\n" -" " +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "Вказані групи" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " -msgstr "" -"\n" -" Додати учасників до запису прав доступу.\n" -" " +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "Параметри облікового запису" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " -msgstr "" -"\n" -" Вилучити учасників з запису прав доступу.\n" -" " +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "Стан облікового запису" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" -msgstr "" -"\n" -"Перевірити луна-імпульсом (пінгом) віддалений сервер IPA\n" +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "Задіяти" -#: ipalib/plugins/ping.py:29 +#: ipalib/plugins/internal.py:468 msgid "" -"\n" -" ping a remote server\n" -" " -msgstr "" -"\n" -" Перевірити луна-імпульсом (пінгом) віддалений сервер\n" -" " +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "Ви справді бажаєте виконати щодо користувача дію «${action}»?
Зміни буде внесено негайно." -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " -msgstr "" -"\n" -" Можливим покращенням могло б бути отримання аргументу з\n" -" наступним його виведенням, але зараз працює і фіксоване значення.\n" -" " +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "Натисніть, щоб ${action}" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" -msgstr "" -"\n" -"Параметри pkinit Kerberos\n" -"\n" -"Вмикання або вимикання анонімного pkinit за допомогою реєстраційного\n" -"запису WELLKNOWN/ANONYMOUS@REALM. Має бути встановлено сервер з\n" -"підтримкою pkinit.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Вмикання анонімного pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Вимикання анонімного pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"Щоб дізнатися більше про анонімний pkinit відвідайте цю сторінку:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "Параметри контакту" -#: ipalib/plugins/pkinit.py:46 -msgid "" -"\n" -" PKINIT Options\n" -" " -msgstr "" -"\n" -" Параметри PKINIT\n" -" " +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "Вимкнути" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" -msgstr "PKINIT" +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "Відомості щодо працівника" -#: ipalib/plugins/pkinit.py:56 -msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " -msgstr "" -"\n" -" Приймає лише Enable/Disable.\n" -" " +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "Помилка під час спроби зміни стану облікового запису" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " -msgstr "" -"\n" -" Увімкнути або вимкнути анонімний PKINIT\n" -" " +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "Адреса ел. пошти" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" -msgstr "" -"\n" -"Уповноваження\n" -"\n" -"Уповноваження поєднує права доступу у одне логічне завдання. Право доступу\n" -"надає можливість виконувати лише одне завдання. У IPA є декілька дій,\n" -"виконання яких потребує одразу декількох прав доступу. В уповноваженні такі\n" -"права доступу поєднуються з метою виконання певної дії.\n" -"\n" -"Наприклад, додавання запису користувача потребує таких прав доступу:\n" -" * право створення запису користувача;\n" -" * право скидання пароля користувача;\n" -" * право додавання користувача до типової групи користувачів IPA.\n" -"\n" -"Поєднання цих трьох низькорівневих завдань у високорівневе завдання у\n" -"форматі уповноваження з назвою «Add User» полегшує керування ролями.\n" -"\n" -"Уповноваження не може містити інших уповноважень.\n" -"\n" -"Щоб дізнатися більше, ознайомтеся з довідною щодо ролей та прав доступу.\n" +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "Інша інформація" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "Поточний пароль" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "Слід вказати поточний пароль" -#: ipalib/plugins/privilege.py:45 +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "Новий пароль" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "Зміну пароля завершено" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "Паролі мають збігатися" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "Скинути пароль" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "Повторіть пароль" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "Ви справді бажаєте вилучити позначені записи?" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "Деякі з записів не вилучено" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "Швидкі посилання" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "Вибрати все" + +#: ipalib/plugins/internal.py:494 msgid "" -"\n" -" Privilege object.\n" -" " -msgstr "" -"\n" -" Об’єкт уповноважень.\n" -" " +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "За запитом повернуто більше за налаштоване максимальне значення результатів. Показано лише перші ${counter} результатів." + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "Скасувати вибір всього" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" -msgstr "Уповноваження" +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "Аудит" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" -msgstr "Назва уповноваження" +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "Автоматичне монтування" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" -msgstr "Опис уповноваження" +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " -msgstr "" -"\n" -" Додати нове уповноваження.\n" -" " +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "Керування доступом на основі вузлів" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" -msgstr "Додано уповноваження «%(value)s»" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "Сервер IPA" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " -msgstr "" -"\n" -" Вилучити уповноваження.\n" -" " +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "Правила" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" -msgstr "Вилучено уповноваження «%(value)s»" +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "Керування доступом на основі ролей" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " -msgstr "" -"\n" -" Змінити уповноваження.\n" -" " +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "Sudo" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" -msgstr "Змінено уповноваження «%(value)s»" +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "Так" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " -msgstr "" -"\n" -" Знайти уповноваження.\n" -" " +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "Далі" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "встановлено відповідність %(count)d уповноваження" -msgstr[1] "встановлено відповідність %(count)d уповноваження" -msgstr[2] "встановлено відповідність %(count)d уповноважень" +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "Сторінка" -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " -msgstr "" -"\n" -" Показати дані щодо уповноваження.\n" -" " +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "Назад" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " -msgstr "" -"\n" -" Додати учасників до запису уповноваження\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" +msgstr "скасувати" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " -msgstr "" -"\n" -" Вилучити учасників з запису уповноваження\n" -" " +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "скасувати всі дії" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " -msgstr "" -"\n" -" Додати права доступу до уповноваження.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "Текст не відповідає шаблону поля" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" -msgstr "Кількість доданих прав доступу" +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" +msgstr "Має бути цілим числом" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " -msgstr "" -"\n" -" Вилучити права доступу з уповноваження.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" +msgstr "Максимальним є значення ${value}" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" -msgstr "Кількість вилучених записів прав доступу" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "Мінімальним є значення ${value}" + +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "Обов’язкове поле" + +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "Словник перекладених повідомлень" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -"Password policy\n" +"Kerberos ticket policy\n" "\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" "\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" +"You can also create a per-user ticket policy by specifying the user login.\n" "\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"service krb5kdc restart\n" "\n" -"EXAMPLES:\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" +"EXAMPLES:\n" "\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" "\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" -msgstr "" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" "\n" -"Правила паролів\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "\nПравила квитків Kerberos\n\nПередбачено єдині правила квитків Kerberos. Ці правила визначають\nмаксимальний строк дії квитка та максимальний вік оновлення, період,\nпротягом якого квиток можна поновити.\n\nКрім того, ви можете створити правила для окремих користувачів\nшляхом визначення імені користувача.\n\nЩоб зміни у загальних правилах набули чинності, слід перезапустити\nслужбу KDC. Це можна зробити за допомогою такої команди:\n\nservice krb5kdc restart\n\nЗміни у окремих правилах для користувачів набудуть чинності негайно\nдля квитків нових запитів (наприклад, у відповідь на наступний\nзапуск користувачем kinit).\n\nПРИКЛАДИ:\n\n Показ поточних правил квитків Kerberos:\n ipa krbtpolicy-show\n\n Відновити типові правила:\n ipa krbtpolicy-reset\n\n Зміна правил на 8-годинний строк дії, 1-денний строк поновлення:\n ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n\n Показ поточних правил квитків Kerberos для користувача «admin»:\n ipa krbtpolicy-show admin\n\n Відновити окремі правила для користувача «admin»:\n ipa krbtpolicy-reset admin\n\n Зміна окремих правил для користувача «admin»:\n ipa krbtpolicy-mod admin --maxlife=3600\n" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "параметри правил квитків kerberos" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "Правила квитків Kerberos" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "Керування правилами обробки квитків певного користувача" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "Макс. строк дії" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "Максимальний строк дії квитка (у секундах)" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "Макс. вік поновлення" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "Максимальний вік, протягом якого можливе поновлення (у секундах)" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "Змінити правила квитків Kerberos." + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." +msgstr "Показати поточні правила квитків Kerberos." + +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "Відновити типові правила квитків Kerberos." + +#: ipalib/plugins/migration.py:34 +msgid "" "\n" -"Правила паролів встановлюють обмеження щодо використання паролів IPA,\n" -"зокрема максимальний строк дії, мінімальний строк дії, кількість паролів,\n" -"які зберігатимуться у журналі, потрібна кількість класів символів (для\n" -"складних паролів) та мінімальну довжину пароля.\n" +"Migration to IPA\n" "\n" -"Типово, визначено одні загальні правила для всіх користувачів. Ви можете\n" -"створити правило паролів, яке стосуватиметься однієї групи. Для одного\n" -"користувача може бути використано лише один набір правил паролів: груповий\n" -"або загальний. Групові правила паролів є незалежними, вони не є загальними\n" -"правилами з додаванням нетипових параметрів.\n" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -"Для кожного набору групових правил паролів має бути встановлено окреме\n" -"значення пріоритету. Якщо користувач є учасником декількох груп, для яких\n" -"встановлено правила паролів, пріоритет визначає, які з правил має бути\n" -"застосовано. Менші значення відповідають вищому пріоритету правил.\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -"Групові правила паролів автоматично вилучаються під час вилучення\n" -"відповідних груп.\n" +"The default user container is ou=People.\n" "\n" -"ПРИКЛАДИ:\n" +"The default group container is ou=Groups.\n" "\n" -" Внесення змін до загальних правил:\n" -" ipa pwpolicy-mod --minlength=10\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -" Додавання нових групових правил паролів:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" -" Показ загальних правил паролів:\n" -" ipa pwpolicy-show\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" "\n" -" Показ групових правил паролів:\n" -" ipa pwpolicy-show localadmins\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" "\n" -" Показ правил, які має бути застосовано до певного користувача:\n" -" ipa pwpolicy-show --user=tuser1\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" -" Внесення змін до групових правил паролів:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" - -#: ipalib/plugins/pwpolicy.py:72 -msgid "" +"EXAMPLES:\n" "\n" -" Class of Service object used for linking policies with groups\n" -" " -msgstr "" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" "\n" -" Клас об’єкта Service, що використовується для прив’язки правил до груп\n" -" " - -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" -msgstr "" -"пріоритет повинен мати унікальне значення (%(prio)d вже використано для " -"%(gname)s)" - -#: ipalib/plugins/pwpolicy.py:172 -msgid "" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Password Policy object\n" -" " -msgstr "" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Об’єкт правил для паролів\n" -" " - -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" -msgstr "Макс. к-ть помилок" - -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" -msgstr "Кількість помилок для блокування" - -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" -msgstr "Проміжок скидання помилок" - -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" -msgstr "" -"Проміжок часу, по завершенню якого кількість помилок буде скинуто (у " -"секундах)" +msgstr "\nПерехід на IPA\n\nПеренесення користувачів і груп з сервера LDAP на IPA.\n\nНадсилає запит LDAP до віддаленого сервера з метою пошуку користувачів\nі груп у контейнері. З метою перенесення паролів вам слід прив’язатися\nдо сервера від імені користувача, який може читати атрибут userPassword\nна сервері. Перелік таких користувачів зазвичай обмежено адміністраторами\nвищого рівня, зокрема cn=Directory Manager на 389-ds (типовий користувач\nbind).\n\nТиповим контейнером користувачів є ou=People.\n\nТиповим контейнером груп є ou=Groups.\n\nЗаписи користувачів і груп, які вже створено на сервері IPA буде\nпропущено.\n\nДві схеми LDAP визначають спосіб зберігання записів учасників групи:\nRFC2307 і RFC2307bis. RFC2307bis використовує атрибути member і\nuniquemember для визначення учасників групи, RFC2307 використовує\nmemberUid. Типовою є схема RFC2307bis.\n\nПеренесені користувачі не матимуть реєстраційних записів Kerberos,\nперенесено буде лише пароль LDAP. Щоб завершити процес перенесення,\nкористувачам слід відкрити сторінку\nhttp://ipa.example.com/ipa/migration і пройти розпізнавання за\nдопомогою пароля LDAP з метою створення запису реєстраційних даних\nKerberos.\n\nТипово перенесення вимкнено. Для його вмикання скористайтеся командою\nipa config-mod:\n\n ipa config-mod --enable-migration=TRUE\n\nПРИКЛАДИ:\n\n Найпростіше перенесення з типовими параметрами:\n ipa migrate-ds ldap://ds.example.com:389\n\n Визначення контейнерів користувача і групи. Можна скористатися для\n перенесення даних користувача і групи з сервера IPA версії 1:\n ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n\n Оскільки на сервері IPA версії 2 вже передбачено попередньо\n визначені групи, які можуть збігатися з групами, які переносяться з\n сервера (IPA версії 1), наприклад admins, ipausers, користувачів з\n таких груп може бути перенесено до невідомої (unknown) групи на\n новому сервері IPA версії 2.\n Скористайтеся параметром --group-overwrite-gid для перезапису\n ідентифікатора групи вже створених груп для запобігання цій\n незручності:\n ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n\n" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" -msgstr "Тривалість блокування" +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "Реєстраційний запис Kerberos %s вже існує. Скористайтеся командою «ipa user-mod», щоб встановити його параметри вручну." -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" -msgstr "Проміжок часу, протягом якого діятиме блокування (у секундах)" +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "Не вдалося додати користувача до типової групи. Додати користувача вручну можна за допомогою команди «ipa group-add-member»." -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" -msgstr "Група" +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." +msgstr "Підтримки перенесення посилання пошуку LDAP не передбачено." -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" -msgstr "Керування правилами обробки паролів для певної групи" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "Помилкове форматування DN" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" -msgstr "Макс. строк дії (у днях)" +#: ipalib/plugins/migration.py:255 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr ". Перевірте ідентифікатор вже створеної групи. Скористайтеся параметром --group-overwrite-gid для перезапису ідентифікатора групи" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" -msgstr "Максимальний строк дії пароля (у днях)" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "Некоректна адреса LDAP." -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" -msgstr "Мін. строк дії (у годинах)" +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "Перенести дані користувачів і груп з DS до IPA." -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" -msgstr "Мінімальний строк дії пароля (у годинах)" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "URI LDAP" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" -msgstr "Розмір журналу" +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "URI LDAP сервера DS, з якого здійснюватиметься міграція" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" -msgstr "Розмір журналу паролів" +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "пароль прив’язки" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" -msgstr "Класи символів" +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "DN для прив'язки" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" -msgstr "Мінімальна кількість класів символів" +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "Контейнер користувачів" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" -msgstr "Мін. довжина" +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "RDN контейнера користувачів у DS" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" -msgstr "Мінімальна довжина пароля" +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "Контейнер груп" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" -msgstr "Пріоритет" +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "RDN контейнера груп у DS" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" -msgstr "Пріоритет правил (більше число — нижчий пріоритет)" +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "Клас об’єктів користувача" -#: ipalib/plugins/pwpolicy.py:294 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " -msgstr "" -"\n" -" Переконуємося, що максимальний строк дії є більшим за мінімальний.\n" -" Якщо мінімального строку не встановлено, не повертаємо помилки.\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "Відокремлений комами список класів об’єктів, використаних для пошуку записів користувачів у DS" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." -msgstr "" -"Максимальний строк дії пароля має перевищувати мінімальний строк його дії." +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "Клас об’єктів групи" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Add a new group password policy.\n" -" " -msgstr "" -"\n" -" Додати нову групу правил для паролів.\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "Відокремлений комами список класів об’єктів, використаних для пошуку записів груп у DS" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " -msgstr "" -"\n" -" Вилучити групу правил для паролів.\n" -" " +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" +msgstr "Ігнорувати клас об’єктів користувача" -#: ipalib/plugins/pwpolicy.py:380 +#: ipalib/plugins/migration.py:373 msgid "" -"\n" -" Modify a group password policy.\n" -" " -msgstr "" -"\n" -" Змінити групу правил для паролів.\n" -" " +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "Відокремлений комами список класів об’єктів, які буде проігноровано для записів користувачів у DS" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "для загальних правил не може встановлювати пріоритети" +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" +msgstr "Ігнорувати атрибут користувача" -#: ipalib/plugins/pwpolicy.py:423 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -" Display information about password policy.\n" -" " -msgstr "" -"\n" -" Показати дані щодо групи правил для паролів.\n" -" " - -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" -msgstr "Користувач" +"Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "Відокремлений комами список атрибути, які буде проігноровано для записів користувачів у DS" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" -msgstr "Показати поточні правила для певного користувача" +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" +msgstr "Ігнорувати клас об’єктів групи" -#: ipalib/plugins/pwpolicy.py:452 +#: ipalib/plugins/migration.py:389 msgid "" -"\n" -" Search for group password policies.\n" -" " -msgstr "" -"\n" -" Знайти групу правил для паролів.\n" -" " +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "Відокремлений комами список класів об’єктів, які буде проігноровано для записів груп у DS" -#: ipalib/plugins/role.py:20 -msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" -msgstr "" -"\n" -"Ролі\n" -"\n" -"Роль використовується для уточнення налаштування прав доступу. Право доступу\n" -"надає можливість виконувати деякі низькорівневі завдання (додавання запису\n" -"користувача, внесення змін до групи тощо). Уповноваження поєднують одне або декілька\n" -"прав доступу у високорівневу абстракцію, наприклад «адміністратор користувачів»\n" -"(useradmin). Такий useradmin зможе додавати, вилучати і вносити зміни до записів\n" -"користувачів.\n" -"\n" -"Уповноваження пов’язуються з ролями.\n" -"\n" -"Учасниками ролі можуть бути користувачі, групи, вузли та групи вузлів.\n" -"\n" -"Ролі можуть містити інші ролі.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання нової ролі:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Додавання уповноважень до ролі:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Додавання користувачів до ролі:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Показ даних щодо ролі:\n" -" ipa role-show junioradmin\n" -"\n" -" Результатом виконання команд буде те, що всі користувачі групи «useradmins»\n" -" зможуть додавати записи користувачів, скидати паролі або додавати користувача\n" -" до типової групи користувачів IPA.\n" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "Ігнорувати атрибут групи" -#: ipalib/plugins/role.py:62 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" Role object.\n" -" " -msgstr "" -"\n" -" Об’єкт ролі.\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "Відокремлений комами список атрибути, які буде проігноровано для записів груп у DS" -#: ipalib/plugins/role.py:81 -msgid "Role" -msgstr "Роль" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" +msgstr "Перезаписати ідентифікатор групи" -#: ipalib/plugins/role.py:86 -msgid "Role name" -msgstr "Назва ролі" +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "Під час перенесення групи, яку вже створено у домені IPA буде перезаписано ідентифікатор групи і повідомлено про успіх" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" -msgstr "Опис цієї групи ролей" +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "Схема LDAP" -#: ipalib/plugins/role.py:101 +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -" Add a new role.\n" -" " -msgstr "" -"\n" -" Додати нову роль.\n" -" " +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "Схема, використана на сервері LDAP. Підтримувані значення: RFC2307 і RFC2307bis. Типове значення: RFC2307bis" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" -msgstr "Додано роль «%(value)s»" +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "Продовжити" -#: ipalib/plugins/role.py:111 +#: ipalib/plugins/migration.py:418 msgid "" -"\n" -" Delete a role.\n" -" " -msgstr "" -"\n" -" Вилучити роль.\n" -" " +"Continuous operation mode. Errors are reported but the process continues" +msgstr "Режим неперервної обробки. Програма повідомляє про помилки, але продовжує обробку." -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" -msgstr "Вилучено роль «%(value)s»" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "Списки об’єктів, міграцію яких виконано; впорядкований за типами." -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " -msgstr "" -"\n" -" Змінити роль.\n" -" " +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "Списки об’єктів, міграцію яких не вдалося виконати; впорядкований за типами." -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" -msgstr "Змінено роль «%(value)s»" +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "False, якщо режим міграції було вимкнено." + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "Список %s, відокремлених комами, які слід виключити з процесу міграції" -#: ipalib/plugins/role.py:131 +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Search for roles.\n" -" " -msgstr "" -"\n" -" Знайти ролі.\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "список результатів пошуку об’єктів міграції\nбуло обрізано сервером; ймовірно,\nпроцес міграції не завершено\n" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "встановлено відповідність %(count)d ролі" -msgstr[1] "встановлено відповідність %(count)d ролей" -msgstr[2] "встановлено відповідність %(count)d ролей" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "Режим міграції вимкнено. Скористайтеся командою «ipa config-mod», щоб увімкнути його." -#: ipalib/plugins/role.py:143 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Display information about a role.\n" -" " -msgstr "" -"\n" -" Показати дані щодо ролі.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "Міграцію записів паролів здійснено у форматі до хешування.\nIPA не вдасться створити ключі Kerberos, якщо не буде\nнадано текстових паролів. Всім користувачам з перенесеними\nзаписами, доведеться пройти розпізнавання на\nhttps://your.domain/ipa/migration/ до того, як вони зможуть\nскористатися обліковими записами Kerberos." -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " -msgstr "" -"\n" -" Додати учасників до запису ролі.\n" -" " +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "Контейнера для %(container)s не знайдено" -#: ipalib/plugins/role.py:159 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Remove members from a role.\n" -" " -msgstr "" -"\n" -" Вилучити учасників з запису ролі.\n" -" " +"Misc plug-ins\n" +msgstr "\nІнші додатки\n" + +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "Показати змінні середовища." + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d змінних" -#: ipalib/plugins/role.py:167 +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Add privileges to a role.\n" -" " -msgstr "" -"\n" -" Додати уповноваження до запису ролі.\n" -" " +"retrieve and print all attributes from the server. Affects command output." +msgstr "отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "Кількість змінних env (>= count)" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" -msgstr "Кількість доданих уповноважень" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "Кількість повернутих змінних (<= загальної)" -#: ipalib/plugins/role.py:191 -msgid "" -"\n" -" Remove privileges from a role.\n" -" " -msgstr "" -"\n" -" Вилучити уповноваження з запису ролі.\n" -" " +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "Показати список завантажених додатків." -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" -msgstr "Кількість вилучених уповноважень" +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "завантажено %(count)d додаток" +msgstr[1] "завантажено %(count)d додатки" +msgstr[2] "завантажено %(count)d додатків" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" +msgstr "Кількість завантажених додатків" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Netgroups\n" "\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" -"\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" -"\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" -msgstr "" -"\n" -"Права доступу самообслуговування\n" -"\n" -"Права доступу надають змогу точно налаштувати уповноваження. За допомогою\n" -"правил керування доступом та інструкцій (ACI) надаються права доступу до\n" -"виконання вказаних завдань, зокрема додавання записів користувачів,\n" -"внесення змін до записів груп тощо.\n" -"\n" -"Права доступу самообслуговування визначають права об’єкта на внесення змін\n" -"до власного запису.\n" -"\n" -"\n" -"ПРИКЛАДИ:\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Додавання правила самообслуговування для уможливлення керування користувачами\n" -" власною адресою:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Якщо ви керуєте списком атрибутів, вам слід включити до списку всі атрибути,\n" -" зокрема вже створені. Додавання telephoneNumber до списку:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Показ нашого оновленого правила:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" Вилучення правила:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" +msgstr "\nМережеві групи\n\nМережева група — група для перевірки прав доступу. Може містити значення\nкористувачів та вузлів.\n\nПРИКЛАДИ:\n\n Додавання нової мережевої групи:\n ipa netgroup-add --desc=\"NFS admins\" admins\n\n Додавання учасників до мережевої групи:\n ipa netgroup-add-member --users=tuser1,tuser2 admins\n\n Вилучення користувача з мережевої групи:\n ipa netgroup-remove-member --users=tuser2 admins\n\n Показ даних щодо мережевої групи:\n ipa netgroup-show admins\n\n Вилучення мережевої групи:\n ipa netgroup-del admins\n" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " -msgstr "" -"\n" -" Визначаємо, чи ACI належить до ACI самообслуговування і повідомляємо про виключення,\n" -" якщо це не так.\n" -"\n" -" Повертаємо результат, якщо це ACI самообслуговування.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" +msgstr "Вузол-учасник" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" -msgstr "Права доступу самообслуговування «%(permission)s» не знайдено" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" +msgstr "мережева група" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " -msgstr "" -"\n" -" Об’єкт самообслуговування.\n" -" " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" +msgstr "мережеві групи" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" -msgstr "Права доступу до самообслуговування" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "Мережеві групи" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" -msgstr "Назва самообслуговування" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" +msgstr "Мережева група" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " -msgstr "" -"\n" -" Додати нові права доступу самообслуговування.\n" -" " +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "Назва мережевої групи" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" -msgstr "Додано самообслуговування «%(value)s»" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "Опис мережевої групи" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " -msgstr "" -"\n" -" Вилучити права доступу самообслуговування.\n" -" " +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "Назва домену NIS" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" -msgstr "Вилучено самообслуговування «%(value)s»" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" +msgstr "Унікальний ід. IPA" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " -msgstr "" -"\n" -" Змінити права доступу самообслуговування.\n" -" " +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." +msgstr "Додати нову мережеву групу." -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" -msgstr "Змінено самообслуговування «%(value)s»" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "Додано групу мережеву групу «%(value)s»" -#: ipalib/plugins/selfservice.py:181 +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Search for a self-service permission.\n" -" " -msgstr "" -"\n" -" Шукати права доступу самообслуговування.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "Група вузлів з назвою «%s» вже створено. Групи вузлів і мережеві групи мають спільний простір назв." -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "встановлено відповідність %(count)d самообслуговування" -msgstr[1] "встановлено відповідність %(count)d самообслуговування" -msgstr[2] "встановлено відповідність %(count)d самообслуговувань" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "Вилучити мережеву групу." -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " -msgstr "" -"\n" -" Показати дані щодо прав доступу самообслуговування.\n" -" " +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "Вилучено мережеву групу «%(value)s»" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "Змінити мережеву групу." + +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "Змінено мережеву групу «%(value)s»" + +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "Шукати мережеву групу." + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "встановлено відповідність %(count)d групи" +msgstr[1] "встановлено відповідність %(count)d груп" +msgstr[2] "встановлено відповідність %(count)d груп" + +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "шукати керовані групи" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "Показати дані щодо мережевої групи." + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "Додати учасників до мережевої групи." + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "Вилучити учасників з мережевої групи." -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"Set a user's password\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" -"\n" -msgstr "" -"\n" -"Служби\n" -"\n" -"Служба IPA — служба, яка виконується на вузлі. Запис служби IPA\n" -"може зберігати реєстраційний запис Kerberos, сертифікат SSL або те і\n" -"і інше.\n" -"\n" -"Службою IPA можна керувати безпосередньо з певного комп’ютера, якщо\n" -"цьому комп’ютеру надано належні права доступу. Таке керування можна\n" -"виконувати навіть з комп’ютерів, не пов’язаних з відповідною службою.\n" -"Наприклад, ви можете надіслати запит щодо сертифіката SSL за допомогою\n" -"реєстраційних даних запису служби вузла. Для керування службою за\n" -"допомогою реєстраційних даних вузла вам слід запустити kinit від імені\n" -"відповідного вузла:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Додавання служби IPA надає змогу пов’язаній службі надсилати запити щодо\n" -"сертифіката SSL або таблиці ключів, але це слід виконувати як окремий\n" -"крок: доступ до цих даних не є прямим результатом додавання служби.\n" -"\n" -"У записі служби зберігається лише відкрита частина даних сертифіката;\n" -"закритий ключ не зберігається.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання нової служби IPA:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Надання вузлу доступу до керування сертифікатом служби IPA:\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" -" Вилучення служби IPA:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Пошук всіх служб IPA, пов’язаних з вузлом:\n" -" ipa service-find web.example.com\n" -"\n" -" Пошук всіх служб HTTP:\n" -" ipa service-find HTTP\n" +" To reset your own password:\n" +" ipa passwd\n" "\n" -" Вимикання ключа служби Kerberos і сертифіката SSL:\n" -" ipa service-disable HTTP/web.example.com\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "\nВстановлення пароля користувача\n\nЯкщо якась стороння особа змінює пароль користувача (наприклад його\nвідновлює допоміжний персонал), новий пароль має бути змінено під\nчас його першого використання. Метою такого способу дій є забезпечення\nситуації, коли пароль буде відомий лише тому, хто ним користується.\n\nПравила щодо паролів IPA керують частотою зміни пароля, вимогами щодо\nскладності пароля та об’ємом журналу зміни паролів.\n\nПРИКЛАДИ:\n\n Щоб скинути ваш власний пароль, виконайте команду:\n ipa passwd\n\n Щоб змінити пароль іншого користувача, виконайте команду:\n ipa passwd tuser1\n" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "Встановити пароль користувача." + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "Змінити пароль «%(value)s»" + +#: ipalib/plugins/permission.py:27 +msgid "" "\n" -" Надсилання запиту щодо сертифіката для служби IPA:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"Permissions\n" "\n" -" Створення і отримання таблиці ключів для служби IPA:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" - -#: ipalib/plugins/service.py:162 -msgid "" +"A permission may not contain other permissions.\n" "\n" -" For now just verify that it is properly base64-encoded.\n" -" " -msgstr "" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -" У поточній версії просто перевірити, чи належним є кодування base64.\n" -" " - -#: ipalib/plugins/service.py:175 -msgid "" +"A permission is made up of a number of different parts:\n" "\n" -" Set individual attributes from some values from a certificate.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" entry_attrs is a dict of an entry\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" returns nothing\n" -" " -msgstr "" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Встановлюємо окремі атрибути з деяких полів сертифіката.\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" entry_attrs є словником запису\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" -" нічого не повертаємо\n" -" " - -#: ipalib/plugins/service.py:199 -msgid "" +"EXAMPLES:\n" "\n" -" Service object.\n" -" " -msgstr "" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" "\n" -" Об’єкт служби.\n" -" " +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "\nПрава доступу\n\nПрава доступу надають змогу точно налаштувати уповноваження. Права доступу\nвизначаються звичайним текстом у форматі правила керування доступом 389-ds\nабо інструкції (ACI). Права доступу надають можливість виконувати певне\nзавдання, зокрема додавання запису користувача, внесення змін до запису\nгрупи.\n\nПрава доступу можуть містити інші права доступу.\n\n* Право доступу надає доступ до читання, запису, додавання або вилучення.\n* Уповноваження поєднують у собі подібні права доступу (наприклад всі\n права доступу, потрібні для додавання запису користувача).\n* Роль надає користувачам, групам, вузлам або групам вузлів певний набір\n уповноважень.\n\nПраво доступу складається з декількох різних частин:\n\n1. Назви права доступу.\n2. Призначення права доступу.\n3. Прав, які надаються.\n\nПрава визначають набір дозволених дій і можуть складатися з одного або\nдекількох таких записів:\n1. write — запис одного або декількох атрибутів\n2. read — читання одного або декількох атрибутів\n3. add — додавання нового запису до ієрархії\n4. delete — вилучення вже створеного запису\n5. all — надання всіх прав доступу\n\nТипово, право доступу до читання надається для більшості атрибутів, отже\nправо доступу «read» не використовуватиметься часто.\n\nЗауваження щодо відмінностей між атрибутами та записами. Права доступу\nє незалежними, отже можливість додавання запису користувача не означає\nможливості вносити зміни до доданого запису.\n\nПередбачено декілька можливих цілей:\n1. type: тип об’єкта (user, group тощо).\n2. memberof: учасник групи користувачів або вузлів\n3. filter: фільтр LDAP\n4. subtree: фільтр LDAP, що визначає частину DIT LDAP DIT. Надмножина\n цілі «type».\n5. targetgroup: надати доступ до внесення змін до запису певної групи\n (зокрема до керування участю у групі)\n\nПРИКЛАДИ:\n\n Додавання права доступу до створення записів користувачів:\n ipa permission-add --type=user --permissions=add \"Add Users\"\n\n Додавання права доступу до можливості керування участю у групі:\n ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" -#: ipalib/plugins/service.py:226 -msgid "Service principal" -msgstr "Реєстраційний запис служби" +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "Тип прав доступу" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " -msgstr "" -"\n" -" Додати нову службу IPA.\n" -" " +#: ipalib/plugins/permission.py:94 +msgid "permission" +msgstr "права доступу" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" -msgstr "Додано службу «%(value)s»" +#: ipalib/plugins/permission.py:95 +msgid "permissions" +msgstr "права доступу" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" -msgstr "" -"примусове значення назви реєстраційного запису, навіть якщо назви немає у " -"DNS" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "Назва прав доступу" -#: ipalib/plugins/service.py:284 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Delete an IPA service.\n" -" " -msgstr "" -"\n" -" Вилучити службу IPA.\n" -" " - -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" -msgstr "Вилучено службу «%(value)s»" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "Відокремлений комами список прав доступу, які слід надати (read, write, add, delete, all)" -#: ipalib/plugins/service.py:321 +#: ipalib/plugins/permission.py:135 msgid "" -"\n" -" Modify an existing IPA service.\n" -" " -msgstr "" -"\n" -" Змінити вже створену службу IPA.\n" -" " +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "Тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup (група вузлів), service (служба), netgroup (мережева група), dns)" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" -msgstr "Змінено службу «%(value)s»" +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "Учасник групи" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " -msgstr "" -"\n" -" Знайти служби IPA.\n" -" " +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "Цільові учасники групи" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "встановлено відповідність %(count)d служби" -msgstr[1] "встановлено відповідність %(count)d служб" -msgstr[2] "встановлено відповідність %(count)d служб" +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "Піддерево, до якого буде застосовано права доступу" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " -msgstr "" -"\n" -" Показати дані щодо служби IPA.\n" -" " +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "Група користувачів, до якої буде застосовано права доступу" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " -msgstr "" -"\n" -" Додати вузли, які можуть керувати цією службою.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." +msgstr "Додати нові права доступу." -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " -msgstr "" -"\n" -" Вилучити вузли, які можуть керувати цією службою.\n" -" " +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "Додано права доступу «%(value)s»" -#: ipalib/plugins/service.py:452 +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "Вилучити права доступу." + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "Вилучено права доступу «%(value)s»" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "Змінити права доступу." + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "Змінено права доступу «%(value)s»" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "Знайти права доступу." + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "встановлено відповідність %(count)d запису" +msgstr[1] "встановлено відповідність %(count)d записів" +msgstr[2] "встановлено відповідність %(count)d записів" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "Показати дані щодо прав доступу." + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " -msgstr "" -"\n" -" Вимкнути ключ Kerberos і сертифікат SSL служби.\n" -" " +"Ping the remote IPA server\n" +msgstr "\nПеревірити луна-імпульсом (пінгом) віддалений сервер IPA\n" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" -msgstr "Вимкнено службу «%(value)s»" +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." +msgstr "Перевірити луна-імпульсом (пінгом) віддалений сервер." -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Sudo Commands\n" +"Kerberos pkinit options\n" "\n" -"Commands used as building blocks for sudo\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" -"\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -msgstr "" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -"Команди sudo\n" +"For more information on anonymous pkinit see:\n" "\n" -"Команди, використані як будівельні блоки для sudo\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "\nПараметри pkinit Kerberos\n\nВмикання або вимикання анонімного pkinit за допомогою реєстраційного\nзапису WELLKNOWN/ANONYMOUS@REALM. Має бути встановлено сервер з\nпідтримкою pkinit.\n\nПРИКЛАДИ:\n\n Вмикання анонімного pkinit:\n ipa pkinit-anonymous enable\n\n Вимикання анонімного pkinit:\n ipa pkinit-anonymous disable\n\nЩоб дізнатися більше про анонімний pkinit відвідайте цю сторінку:\n\nhttp://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "pkinit" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "PKINIT" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." +msgstr "Увімкнути або вимкнути анонімний PKINIT." + +#: ipalib/plugins/privilege.py:23 +msgid "" "\n" -"ПРИКЛАДИ:\n" +"Privileges\n" "\n" -" Створення запису команди\n" -" ipa sudocmd-add --desc='Читання файлів журналу' /usr/bin/less\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Вилучення команди\n" -" ipa sudocmd-del /usr/bin/less\n" +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" "\n" - -#: ipalib/plugins/sudocmd.py:46 -msgid "" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" "\n" -" Sudo Command object.\n" -" " -msgstr "" +"A privilege may not contain other privileges.\n" "\n" -" Об’єкт команд sudo.\n" -" " +"See role and permission for additional information.\n" +msgstr "\nУповноваження\n\nУповноваження поєднує права доступу у одне логічне завдання. Право доступу\nнадає можливість виконувати лише одне завдання. У IPA є декілька дій,\nвиконання яких потребує одразу декількох прав доступу. В уповноваженні такі\nправа доступу поєднуються з метою виконання певної дії.\n\nНаприклад, додавання запису користувача потребує таких прав доступу:\n * право створення запису користувача;\n * право скидання пароля користувача;\n * право додавання користувача до типової групи користувачів IPA.\n\nПоєднання цих трьох низькорівневих завдань у високорівневе завдання у\nформаті уповноваження з назвою «Add User» полегшує керування ролями.\n\nУповноваження не може містити інших уповноважень.\n\nЩоб дізнатися більше, ознайомтеся з довідною щодо ролей та прав доступу.\n" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" -msgstr "Команди sudo" +#: ipalib/plugins/privilege.py:49 +msgid "privilege" +msgstr "уповноваження" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" -msgstr "Команда sudo" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" +msgstr "уповноваження" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" -msgstr "Опис цієї команди" +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" +msgstr "Уповноваження" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " -msgstr "" -"\n" -" Створити запис команди sudo.\n" -" " +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" +msgstr "Уповноваження" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" -msgstr "Додано команду sudo «%(value)s»" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" +msgstr "Назва уповноваження" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " -msgstr "" -"\n" -" Вилучити запис команди sudo.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" +msgstr "Опис уповноваження" + +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." +msgstr "Додати нове уповноваження." + +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "Додано уповноваження «%(value)s»" + +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." +msgstr "Вилучити уповноваження." + +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "Вилучено уповноваження «%(value)s»" + +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "Змінити уповноваження." + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "Змінено уповноваження «%(value)s»" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "Знайти уповноваження." + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "встановлено відповідність %(count)d уповноваження" +msgstr[1] "встановлено відповідність %(count)d уповноваження" +msgstr[2] "встановлено відповідність %(count)d уповноважень" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" -msgstr "Вилучено команду sudo «%(value)s»" +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." +msgstr "Показати дані щодо уповноваження." -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " -msgstr "" -"\n" -" Змінити команду.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." +msgstr "Додати учасників до запису уповноваження." -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" -msgstr "Змінено команду sudo «%(value)s»" +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." +msgstr "Додати права доступу до уповноваження." -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " -msgstr "" -"\n" -" Знайти команди.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "Кількість доданих прав доступу" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "встановлено відповідність %(count)d команди sudo" -msgstr[1] "встановлено відповідність %(count)d команд sudo" -msgstr[2] "встановлено відповідність %(count)d команд sudo" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "Вилучити права доступу з уповноваження." -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " -msgstr "" -"\n" -" Показати команду sudo.\n" -" " +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" +msgstr "Кількість вилучених записів прав доступу" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +"Password policy\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" -msgstr "" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" -"Групи команд Sudo\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" -"Керування групами команд Sudo.\n" +"EXAMPLES:\n" "\n" -"ПРИКЛАДИ:\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Додавання нової групи команд Sudo:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" Вилучення групи команд Sudo:\n" -" ipa sudocmdgroup-del admincmds\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Керування участю у групі команд Sudo, команди:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" Керування участю у групі команд Sudo, команди:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" -" Показ групи команд Sudo:\n" -" ipa group-show localadmins\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" +msgstr "\nПравила паролів\n\nПравила паролів встановлюють обмеження щодо використання паролів IPA,\nзокрема максимальний строк дії, мінімальний строк дії, кількість паролів,\nякі зберігатимуться у журналі, потрібна кількість класів символів (для\nскладних паролів) та мінімальну довжину пароля.\n\nТипово, визначено одні загальні правила для всіх користувачів. Ви можете\nстворити правило паролів, яке стосуватиметься однієї групи. Для одного\nкористувача може бути використано лише один набір правил паролів: груповий\nабо загальний. Групові правила паролів є незалежними, вони не є загальними\nправилами з додаванням нетипових параметрів.\n\nДля кожного набору групових правил паролів має бути встановлено окреме\nзначення пріоритету. Якщо користувач є учасником декількох груп, для яких\nвстановлено правила паролів, пріоритет визначає, які з правил має бути\nзастосовано. Менші значення відповідають вищому пріоритету правил.\n\nГрупові правила паролів автоматично вилучаються під час вилучення\nвідповідних груп.\n\nПРИКЛАДИ:\n\n Внесення змін до загальних правил:\n ipa pwpolicy-mod --minlength=10\n\n Додавання нових групових правил паролів:\n ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n\n Показ загальних правил паролів:\n ipa pwpolicy-show\n\n Показ групових правил паролів:\n ipa pwpolicy-show localadmins\n\n Показ правил, які має бути застосовано до певного користувача:\n ipa pwpolicy-show --user=tuser1\n\n Внесення змін до групових правил паролів:\n ipa pwpolicy-mod --minclasses=2 localadmins\n" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " -msgstr "" -"\n" -" Об’єкт групи sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "пріоритет повинен мати унікальне значення (%(prio)d вже використано для %(gname)s)" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" -msgstr "Група команд sudo" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" +msgstr "правила для паролів" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " -msgstr "" -"\n" -" Створити групу команд sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" +msgstr "правила щодо паролів" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" -msgstr "Додано групу команд sudo «%(value)s»" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" +msgstr "Макс. к-ть помилок" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " -msgstr "" -"\n" -" Вилучити групу команд sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" +msgstr "Кількість помилок для блокування" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" -msgstr "Вилучено групу команд sudo «%(value)s»" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" +msgstr "Проміжок скидання помилок" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " -msgstr "" -"\n" -" Змінити групу.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" +msgstr "Проміжок часу, по завершенню якого кількість помилок буде скинуто (у секундах)" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" -msgstr "Змінено групу команд sudo «%(value)s»" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" +msgstr "Тривалість блокування" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " -msgstr "" -"\n" -" Шукати групи команд sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" +msgstr "Проміжок часу, протягом якого діятиме блокування (у секундах)" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "встановлено відповідність %(count)d групи команди sudo" -msgstr[1] "встановлено відповідність %(count)d груп команд sudo" -msgstr[2] "встановлено відповідність %(count)d груп команд sudo" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" +msgstr "Правила щодо паролів" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " -msgstr "" -"\n" -" Показати групу команд sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" +msgstr "Група" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " -msgstr "" -"\n" -" Додати учасників до групи команд sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "Керування правилами обробки паролів для певної групи" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " -msgstr "" -"\n" -" Вилучити учасників з групи команд sudo.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" +msgstr "Макс. строк дії (у днях)" + +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" +msgstr "Максимальний строк дії пароля (у днях)" + +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" +msgstr "Мін. строк дії (у годинах)" + +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" +msgstr "Мінімальний строк дії пароля (у годинах)" + +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" +msgstr "Розмір журналу" + +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" +msgstr "Розмір журналу паролів" + +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "Класи символів" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" +msgstr "Мінімальна кількість класів символів" + +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" +msgstr "Мін. довжина" + +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "Мінімальна довжина пароля" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "Пріоритет" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "Пріоритет правил (більше число — нижчий пріоритет)" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "Максимальний строк дії пароля має перевищувати мінімальний строк його дії." + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "Додати нову групу правил для паролів." + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "Вилучити групу правил для паролів." + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" +msgstr "неможливо вилучити загальні правила паролів" + +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." +msgstr "Змінити групу правил для паролів." + +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" +msgstr "для загальних правил не може встановлювати пріоритети" + +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "Показати дані щодо групи правил для паролів." -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "Користувач" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "Показати поточні правила для певного користувача" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." +msgstr "Знайти групу правил для паролів." + +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Roles\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Privileges are assigned to Roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"За допомогою sudo (su \"do\") адміністратор системи може надати\n" -"уповноваження певним користувачам (або групам користувачів)\n" -"можливість виконання деяких (або всіх) команд від імені root\n" -"або іншого користувача з веденням стеження за командами та\n" -"аргументами цих команд.\n" +"Roles can not contain other roles.\n" "\n" -"У FreeIPA передбачено призначений binddn для використання з sudo:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"EXAMPLES:\n" "\n" -"Що уможливити binddn, віддайте таку команду зі встановлення пароля:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -"Щоб дізнатися більше, ознайомтеся з документацією FreeIPA щодо sudo.\n" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -" Sudo Rule management\n" -" " -msgstr "" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Керування правилами sudo\n" -" " +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" +msgstr "\nРолі\n\nРоль використовується для уточнення налаштування прав доступу. Право доступу\nнадає можливість виконувати деякі низькорівневі завдання (додавання запису\nкористувача, внесення змін до групи тощо). Уповноваження поєднують одне або декілька\nправ доступу у високорівневу абстракцію, наприклад «адміністратор користувачів»\n(useradmin). Такий useradmin зможе додавати, вилучати і вносити зміни до записів\nкористувачів.\n\nУповноваження пов’язуються з ролями.\n\nУчасниками ролі можуть бути користувачі, групи, вузли та групи вузлів.\n\nРолі можуть містити інші ролі.\n\nПРИКЛАДИ:\n\n Додавання нової ролі:\n ipa role-add --desc=\"Junior-level admin\" junioradmin\n\n Додавання уповноважень до ролі:\n ipa role-add-privilege --privileges=addusers junioradmin\n ipa role-add-privilege --privileges=change_password junioradmin\n ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n\n Додавання користувачів до ролі:\n ipa group-add --desc=\"User admins\" useradmins\n ipa role-add-member --groups=useradmins junioradmin\n\n Показ даних щодо ролі:\n ipa role-show junioradmin\n\n Результатом виконання команд буде те, що всі користувачі групи «useradmins»\n зможуть додавати записи користувачів, скидати паролі або додавати користувача\n до типової групи користувачів IPA.\n" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" -msgstr "Правило sudo" +#: ipalib/plugins/role.py:66 +msgid "role" +msgstr "роль" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" -msgstr "Категорія команд" +#: ipalib/plugins/role.py:67 +msgid "roles" +msgstr "ролі" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" -msgstr "Категорія команд, до якої застосовується правило" +#: ipalib/plugins/role.py:82 +msgid "Role" +msgstr "Роль" + +#: ipalib/plugins/role.py:87 +msgid "Role name" +msgstr "Назва ролі" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" -msgstr "Категорія запуску від імені користувача" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "Опис цієї групи ролей" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" -msgstr "" -"Категорія запуску від імені користувача, до якої застосовується правило" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." +msgstr "Додати нову роль." -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" -msgstr "Категорія запуску від імені групи" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Додано роль «%(value)s»" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" -msgstr "Категорія запуску від імені групи, до якої застосовується правило" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." +msgstr "Вилучити роль." -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" -msgstr "Команди дозволу sudo" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Вилучено роль «%(value)s»" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" -msgstr "Команди заборони sudo" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." +msgstr "Змінити роль." -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" -msgstr "Запуск від користувача" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Змінено роль «%(value)s»" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" -msgstr "Запуск від групи" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." +msgstr "Знайти ролі." -#: ipalib/plugins/sudorule.py:156 -msgid "External User" -msgstr "Зовнішній користувач" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "встановлено відповідність %(count)d ролі" +msgstr[1] "встановлено відповідність %(count)d ролей" +msgstr[2] "встановлено відповідність %(count)d ролей" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "Зовнішній користувача, до якого буде застосовано правило" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." +msgstr "Показати дані щодо ролі." -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" -msgstr "Зовнішній користувач для RunAs" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." +msgstr "Додати учасників до запису ролі." -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" -msgstr "Зовнішній користувач, від імені якого можна віддавати команди" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." +msgstr "Вилучити учасників з запису ролі." -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" -msgstr "Зовнішня група для RunAs" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "Додати уповноваження до запису ролі." -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" -msgstr "Зовнішня група, від імені якої можна віддавати команди" +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" +msgstr "Кількість доданих уповноважень" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " -msgstr "" -"\n" -" Створити правило sudo.\n" -" " +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." +msgstr "Вилучити уповноваження з запису ролі." -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "Додано правило sudo «%(value)s»" +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" +msgstr "Кількість вилучених уповноважень" -#: ipalib/plugins/sudorule.py:189 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" -"\n" -" Вилучити правило sudo.\n" -" " - -#: ipalib/plugins/sudorule.py:197 -msgid "" +"Self-service Permissions\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Змінити правило sudo.\n" -" " - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" "\n" -" Знайти правило sudo.\n" -" " - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"EXAMPLES:\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" "\n" -" Показати правило sudo.\n" -" " - -#: ipalib/plugins/sudorule.py:221 -msgid "" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" "\n" -" Enable a Sudo rule.\n" -" " -msgstr "" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" "\n" -" Увімкнути правило sudo.\n" -" " +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" +msgstr "\nПрава доступу самообслуговування\n\nПрава доступу надають змогу точно налаштувати уповноваження. За допомогою\nправил керування доступом та інструкцій (ACI) надаються права доступу до\nвиконання вказаних завдань, зокрема додавання записів користувачів,\nвнесення змін до записів груп тощо.\n\nПрава доступу самообслуговування визначають права об’єкта на внесення змін\nдо власного запису.\n\n\nПРИКЛАДИ:\n\n Додавання правила самообслуговування для уможливлення керування користувачами\n власною адресою:\n ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n\n Якщо ви керуєте списком атрибутів, вам слід включити до списку всі атрибути,\n зокрема вже створені. Додавання telephoneNumber до списку:\n ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n\n Показ нашого оновленого правила:\n ipa selfservice-show \"Users manage their own address\"\n\n Вилучення правила:\n ipa selfservice-del \"Users manage their own address\"\n" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " -msgstr "" -"\n" -" Вимкнути правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" +msgstr "Права доступу самообслуговування «%(permission)s» не знайдено" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " -msgstr "" -"\n" -" Додати команди і групи команд sudo, яких стосується правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" +msgstr "права доступу автослужби" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " -msgstr "" -"\n" -" Вилучити команди і групи команд sudo, яких стосується правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" +msgstr "права доступу до автослужби" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " -msgstr "" -"\n" -" Додати записи користувачів та груп, яких стосується правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" +msgstr "Права доступу до самообслуговування" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " -msgstr "" -"\n" -" Вилучити записи користувачів та груп, яких стосується правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" +msgstr "Права доступу автослужби" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " -msgstr "" -"\n" -" Додати вузли та групи вузлів, яких стосується правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" +msgstr "Назва самообслуговування" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " -msgstr "" -"\n" -" Вилучити вузли та групи вузлів, яких стосується правило sudo.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." +msgstr "Додати нові права доступу автослужби." -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " -msgstr "" -"\n" -" Додати користувача, від імені якого можна виконувати sudo.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" +msgstr "Додано самообслуговування «%(value)s»" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " -msgstr "" -"\n" -" Вилучити користувача, від імені якого можна виконувати sudo.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." +msgstr "Вилучити права доступу автослужби." -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " -msgstr "" -"\n" -" Додати групу виконання до запису sudo.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "Вилучено самообслуговування «%(value)s»" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " -msgstr "" -"\n" -" Вилучити групу виконання з запису sudo.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." +msgstr "Змінити права доступу автослужби." -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " -msgstr "" -"\n" -" Додати пункт до правила sudo.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" +msgstr "Змінено самообслуговування «%(value)s»" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" -msgstr "Пункт sudo" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." +msgstr "Шукати права доступу автослужби." -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " -msgstr "" -"\n" -" Вилучити пункт з правила sudo.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "встановлено відповідність %(count)d самообслуговування" +msgstr[1] "встановлено відповідність %(count)d самообслуговування" +msgstr[2] "встановлено відповідність %(count)d самообслуговувань" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." +msgstr "Показати дані щодо прав доступу автослужби." + +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" -"\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +"Services\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Користувачі\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" "\n" -"Керування записами користувачів. Всі користувачі є користувачами POSIX.\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" -"У IPA передбачено підтримку широкого діапазону форматів імен\n" -"користувачів, але вам слід враховувати всі обмеження, які накладаються\n" -"вашим робочим середовищем. Наприклад, імена, що починаються з цифри, або\n" -"занадто довгі імена можуть спричинити проблеми у деяких системах UNIX.\n" -"Скористайтеся командою «ipa config-mod» для зміни формату імені\n" -"користувача, яке дозволятиметься інструментами IPA.\n" +"EXAMPLES:\n" "\n" -"Вимикання облікового запису користувача лише заборонить отримання\n" -"користувачами нових реєстраційних даних Kerberos. Всі вже отримані\n" -"реєстраційні дані не втратять своєї чинності.\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -"Керування паролями не є завданням цього модуля. Докладніші дані щодо\n" -"керування паролями можна отримати у відповідь на команду ipa help passwd\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -"ПРИКЛАДИ:\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Додавання нового користувача:\n" -" ipa user-add --first=Ivan --last=Ivanenko --password tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Пошук всіх користувачів, чиї записи містять рядок «Ivan»:\n" -" ipa user-find Ivan\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Пошук всіх користувачів з іменем (не прізвищем) «Ivan»:\n" -" ipa user-find --first=Ivan\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" "\n" -" Вимикання запису користувача:\n" -" ipa user-disable tuser1\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" "\n" -" Вмикання запису користувача:\n" -" ipa user-enable tuser1\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Вилучення запису користувача:\n" -" ipa user-del tuser1\n" +msgstr "\nСлужби\n\nСлужба IPA — служба, яка виконується на вузлі. Запис служби IPA\nможе зберігати реєстраційний запис Kerberos, сертифікат SSL або те і\nі інше.\n\nСлужбою IPA можна керувати безпосередньо з певного комп’ютера, якщо\nцьому комп’ютеру надано належні права доступу. Таке керування можна\nвиконувати навіть з комп’ютерів, не пов’язаних з відповідною службою.\nНаприклад, ви можете надіслати запит щодо сертифіката SSL за допомогою\nреєстраційних даних запису служби вузла. Для керування службою за\nдопомогою реєстраційних даних вузла вам слід запустити kinit від імені\nвідповідного вузла:\n\n # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n\nДодавання служби IPA надає змогу пов’язаній службі надсилати запити щодо\nсертифіката SSL або таблиці ключів, але це слід виконувати як окремий\nкрок: доступ до цих даних не є прямим результатом додавання служби.\n\nУ записі служби зберігається лише відкрита частина даних сертифіката;\nзакритий ключ не зберігається.\n\nПРИКЛАДИ:\n\n Додавання нової служби IPA:\n ipa service-add HTTP/web.example.com\n\n Надання вузлу доступу до керування сертифікатом служби IPA:\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 Вилучення служби IPA:\n ipa service-del HTTP/web.example.com\n\n Пошук всіх служб IPA, пов’язаних з вузлом:\n ipa service-find web.example.com\n\n Пошук всіх служб HTTP:\n ipa service-find HTTP\n\n Вимикання ключа служби Kerberos і сертифіката SSL:\n ipa service-disable HTTP/web.example.com\n\n Надсилання запиту щодо сертифіката для служби IPA:\n ipa cert-request --principal=HTTP/web.example.com example.csr\n\n Створення і отримання таблиці ключів для служби IPA:\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n\n" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " -msgstr "" -"\n" -" Об’єкт користувача.\n" -" " +#: ipalib/plugins/service.py:204 +msgid "service" +msgstr "служба" -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "Користувач" +#: ipalib/plugins/service.py:205 +msgid "services" +msgstr "служби" -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "Ім'я" +#: ipalib/plugins/service.py:229 +msgid "Service principal" +msgstr "Реєстраційний запис служби" -#: ipalib/plugins/user.py:127 -msgid "Last name" -msgstr "Прізвище" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." +msgstr "Додати нову службу IPA." -#: ipalib/plugins/user.py:130 -msgid "Full name" -msgstr "Повне ім’я" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Додано службу «%(value)s»" -#: ipalib/plugins/user.py:135 -msgid "Display name" -msgstr "Екранне ім'я" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" +msgstr "примусове значення назви реєстраційного запису, навіть якщо назви немає у DNS" -#: ipalib/plugins/user.py:140 -msgid "Initials" -msgstr "Ініціали" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." +msgstr "Вилучити службу IPA." -#: ipalib/plugins/user.py:146 -msgid "Home directory" -msgstr "Домашній каталог" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Вилучено службу «%(value)s»" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" -msgstr "Поле GECOS" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." +msgstr "Змінити вже створену службу IPA." -#: ipalib/plugins/user.py:156 -msgid "Login shell" -msgstr "Оболонка входу" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Змінено службу «%(value)s»" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" -msgstr "Реєстраційний запис Kerberos" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." +msgstr "Знайти служби IPA." -#: ipalib/plugins/user.py:168 -msgid "Email address" -msgstr "Адреса ел. пошти" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "встановлено відповідність %(count)d служби" +msgstr[1] "встановлено відповідність %(count)d служб" +msgstr[2] "встановлено відповідність %(count)d служб" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" -msgstr "Надіслати запит щодо встановлення пароля користувача" +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." +msgstr "Показати дані щодо служби IPA." -#: ipalib/plugins/user.py:180 -msgid "UID" -msgstr "UID" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." +msgstr "Додати вузли, які можуть керувати цією службою." -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" -msgstr "" -"Ідентифікаційний номер користувача (система призначить його, якщо не буде " -"вказано)" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." +msgstr "Вилучити вузли, які можуть керувати цією службою." -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" -msgstr "Ід. номер групи" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "Вимкнути ключ Kerberos і сертифікат SSL служби." -#: ipalib/plugins/user.py:193 -msgid "Street address" -msgstr "Вулиця і будинок" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Вимкнено службу «%(value)s»" -#: ipalib/plugins/user.py:197 -msgid "City" -msgstr "Місто" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" +msgstr "\nКоманди sudo\n\nКоманди, використані як будівельні блоки для sudo\n\nПРИКЛАДИ:\n\n Створення запису команди\n ipa sudocmd-add --desc='Читання файлів журналу' /usr/bin/less\n\n Вилучення команди\n ipa sudocmd-del /usr/bin/less\n\n" -#: ipalib/plugins/user.py:201 -msgid "State/Province" -msgstr "Область/провінція" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" +msgstr "команди керування налаштуванням sudo" -#: ipalib/plugins/user.py:204 -msgid "ZIP" -msgstr "Індекс" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" +msgstr "команда sudo" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" -msgstr "Номер телефону" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" +msgstr "команди sudo" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" -msgstr "Номер мобільного телефону" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" +msgstr "Команди sudo" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" -msgstr "Номер пейджера" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" +msgstr "Команда sudo" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" -msgstr "Номер факсу" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" +msgstr "Опис цієї команди" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" -msgstr "Підрозділ" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." +msgstr "Створити запис команди sudo." -#: ipalib/plugins/user.py:225 -msgid "Job Title" -msgstr "Посада" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" +msgstr "Додано команду sudo «%(value)s»" -#: ipalib/plugins/user.py:228 -msgid "Manager" -msgstr "Керівник" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." +msgstr "Вилучити запис команди sudo." -#: ipalib/plugins/user.py:231 -msgid "Car License" -msgstr "Водійська ліцензія" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" +msgstr "Вилучено команду sudo «%(value)s»" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" -msgstr "Обліковий запис вимкнено" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." +msgstr "Змінити команду sudo." -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " -msgstr "" -"\n" -" За вказаним ідентифікатором користувача перевіряємо існування\n" -" запису користувача і повертаємо dn.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "Змінено команду sudo «%(value)s»" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" -msgstr "керування %(manager)s не знайдено" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." +msgstr "Знайти команди sudo." -#: ipalib/plugins/user.py:281 +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "встановлено відповідність %(count)d команд sudo" +msgstr[1] "встановлено відповідність %(count)d команд sudo" +msgstr[2] "встановлено відповідність %(count)d команд sudo" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." +msgstr "Показати команду sudo." + +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" Convert a manager dn into a userid\n" -" " -msgstr "" +"Groups of Sudo Commands\n" "\n" -" Перетворення dn керування на ідентифікатор користувача\n" -" " - -#: ipalib/plugins/user.py:295 -msgid "" +"Manage groups of Sudo Commands.\n" "\n" -" Add a new user.\n" -" " -msgstr "" +"EXAMPLES:\n" "\n" -" Додати нового користувача.\n" -" " - -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "Додано користувача «%(value)s»" - -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" -msgstr "Не створювати закриту групу користувача" - -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" -msgstr "не повинне перевищувати %(len)d символів у довжину" - -#: ipalib/plugins/user.py:400 -msgid "" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Delete a user.\n" -" " -msgstr "" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" "\n" -" Вилучити запис користувача.\n" -" " - -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "Вилучено користувача «%(value)s»" - -#: ipalib/plugins/user.py:413 -msgid "" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" "\n" -" Modify a user.\n" -" " -msgstr "" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" "\n" -" Змінити дані користувача.\n" -" " +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" +msgstr "\nГрупи команд sudo\n\nКерування групами команд sudo.\n\nПРИКЛАДИ:\n\n Додати нову групу команд sudo:\n ipa sudocmdgroup-add --desc='administrators commands' admincmds\n\n Вилучити групу команд sudo:\n ipa sudocmdgroup-del admincmds\n\n Керування участю групи команд sudo, команди:\n ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n\n Керування участю групи команд sudo, команди:\n ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n\n Показ групи команд sudo:\n ipa group-show localadmins\n" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "Змінено користувача «%(value)s»" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" +msgstr "група команд sudo" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " -msgstr "" -"\n" -" Знайти користувачів.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" +msgstr "групи команд sudo" -#: ipalib/plugins/user.py:444 -msgid "Self" -msgstr "Self" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" +msgstr "Група команд sudo" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" -msgstr "" -"Показати запис користувача для поточного реєстраційного запису Kerberos" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." +msgstr "Створити групу команд sudo." -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "встановлено відповідність %(count)d користувача" -msgstr[1] "встановлено відповідність %(count)d користувачів" -msgstr[2] "встановлено відповідність %(count)d користувачів" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "Додано групу команд sudo «%(value)s»" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " -msgstr "" -"\n" -" Показати дані щодо користувача.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." +msgstr "Вилучити групу команд sudo." -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " -msgstr "" -"\n" -" Вимкнути обліковий запис користувача.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" +msgstr "Вилучено групу команд sudo «%(value)s»" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" -msgstr "Вимкнено обліковий запис користувача «%(value)s»" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." +msgstr "Змінити групу команд sudo." -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " -msgstr "" -"\n" -" Увімкнути обліковий запис користувача.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" +msgstr "Змінено групу команд sudo «%(value)s»" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" -msgstr "Увімкнено обліковий запис користувача «%(value)s»" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." +msgstr "Шукати групи команд sudo." -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " -msgstr "" -"\n" -" Розблокувати обліковий запис користувача\n" -"\n" -" Обліковий запис може бути заблоковано, якщо відповідно до правил безпеки\n" -" користувач перевищить обмеження на кількість введення помилкових паролів\n" -" протягом певного часу. Запис блокується тимчасово, його може бути\n" -" розблоковано адміністратором.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "встановлено відповідність %(count)d групи команд sudo" +msgstr[1] "встановлено відповідність %(count)d груп команд sudo" +msgstr[2] "встановлено відповідність %(count)d груп команд sudo" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" -msgstr "Розблоковано обліковий запис «%(value)s»" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." +msgstr "Показати групу команд sudo." + +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." +msgstr "Додати учасників до групи команд sudo." -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" -msgstr "" -"\n" -"Основні класи для додатків без сервера LDAP.\n" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." +msgstr "Вилучити учасників з групи команд sudo." -#: ipalib/plugins/virtual.py:28 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" +"Sudo Rules\n" "\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " -msgstr "" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"commands and their arguments.\n" "\n" -" Команда, яка не використовує сервер LDAP, але бажає використовувати\n" -" систему керування доступом LDAP для прийняття рішень щодо уповноваження.\n" +"FreeIPA provides a means to configure the various aspects of Sudo:\n" +" Users: The user(s)/group(s) allowed to envoke 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" "\n" -" Дія над змінними класу — атрибут commonName запису, який має бути\n" -" перевірено.\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" "\n" -" Перед виконанням вам слід створити запис у форматі:\n" -" cn=<дія>, api.env.container_virtual, api.env.basedn\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" "\n" -" Приклад:\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +"For more information, see the FreeIPA Documentation to Sudo.\n" +msgstr "\nПравила sudo\n\nSudo (su \"do\") надає змогу адміністраторові системи уповноважити\nпевних користувачів (або групи користувачів) на виконання певних (або\nвсіх) команд від імені адміністратора або іншого користувача зі\nзбереженням можливості ознайомлення з журналом команд і аргументів.\n\nУ FreeIPA передбачено можливість налаштування різноманітних аспектів\nроботи sudo:\n Користувачі: користувачі і групи, яким можна використовувати sudo.\n Вузли: вузли і групи вузлів, користувачам яких можна використовувати sudo.\n Дозволена команда: команда, яку можна виконувати за допомогою sudo.\n Заборонена команда: команда, яку не можна виконувати за допомогою sudo.\n Користувач запуску: користувач або група користувачів, від імені яких виконується sudo.\n Група запуску: група, з ідентифікатором якої буде запущено sudo.\n Параметри: різноманітні параметри sudoers, які можуть змінювати поведінку sudo.\n\nFreeIPA надає підписаний binddn для використання з sudo з адресою:\nuid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n\nЩоб увімкнути binddn, виконайте таку команду для встановлення пароля:\nLDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n\nДокладніші відомості можна знайти у документації до FreeIPA з sudo.\n" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " -msgstr "" -"\n" -" Виконати запит до LDAP для визначення уповноваження.\n" -"\n" -" Має бути виконано до всіх інших дій.\n" -" " +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" +msgstr "Команди керування налаштуванням sudo" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" -msgstr "" -"\n" -"Клієнтський додаток XML-RPC.\n" +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." +msgstr "цей параметр вважається застарілим." -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Введіть %(label)s ще раз для перевірки: " +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" +msgstr "правило sudo" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "Паролі не збігаються!" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" +msgstr "правила sudo" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "Скасовано." +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" +msgstr "Правила Sudo" -#: ipalib/cli.py:819 -msgid "Command name" -msgstr "Назва команди" +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" +msgstr "Правило sudo" -#: ipalib/cli.py:1117 -msgid "No file to read" -msgstr "Немає файла для читання" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "Категорія команд" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" -msgstr "Клієнт %(cver)s є несумісним з сервером %(sver)s на %(server)r" +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" +msgstr "Категорія команд, до якої застосовується правило" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "%(server)s повідомляє про невідому помилку %(code)d: %(error)s" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" +msgstr "Категорія запуску від імені користувачів" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "сталася внутрішня помилка" +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" +msgstr "Категорія запуску від імені користувачів, до якої застосовується правило" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "на сервері %(server)r сталася внутрішня помилка" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" +msgstr "Категорія запуску від імені групи" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "невідома команда %(name)r" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" +msgstr "Категорія запуску від імені групи, до якої застосовується правило" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" -msgstr "помилка на сервері %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" +msgstr "Дозволені команди sudo" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "не вдалося встановити з’єднання з %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" +msgstr "Заборонені команди sudo" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "некоректний запит JSON-RPC: %(error)s" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" +msgstr "Групи дозволених команд sudo" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" -msgstr "" -"помилка під час розміщення даних для каналу передавання XML-RPC: %(error)s" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" +msgstr "Групи заборонених команд sudo" -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Помилка Kerberos: %(major)s/%(minor)s" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" +msgstr "Користувачі запуску від імені" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" -msgstr "не отримано реєстраційних даних Kerberos" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" +msgstr "Запуск від користувача" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" -msgstr "У базі даних Kerberos не виявлено служби %(service)r" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" +msgstr "Групи користувачів запуску від імені" -#: ipalib/errors.py:514 -msgid "No credentials cache found" -msgstr "Не знайдено кешу реєстраційних даних" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" +msgstr "Запускати від імені будь-якого користувача вказаної групи" -#: ipalib/errors.py:530 -msgid "Ticket expired" -msgstr "Сплив строк дії квитка" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" +msgstr "Зовнішній користувач" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" -msgstr "Помилкові права доступу до кешу реєстраційних даних" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" +msgstr "Зовнішній користувач, до якого застосовуватиметься правило (лише sudorule-find)" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" -msgstr "Помилковий формат кешу реєстраційних даних" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" +msgstr "Зовнішній користувач для RunAs" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" -msgstr "Не вдалося визначити KDC для бажаної області (realm)" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" +msgstr "Зовнішній користувач, від імені якого можна віддавати команди (лише sudorule-find)" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Недостатні права для доступу: %(info)s" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "Зовнішня група для RunAs" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "команда %(name)r не приймає ніяких аргументів" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "Зовнішня група, від імені якої можна віддавати команди (лише sudorule-find)" -#: ipalib/errors.py:661 -#, 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] "команда %(name)r приймає не більше %(count)d аргументу" -msgstr[1] "команда %(name)r приймає не більше %(count)d аргументів" -msgstr[2] "команда %(name)r приймає не більше %(count)d аргументів" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" +msgstr "Пункт sudo" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" -msgstr "перекриття аргументів і параметрів: %(names)r" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" +msgstr "Групи запуску від імені" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "Слід вказати %(name)r" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" +msgstr "Запускати з ідентифікатором вказаної групи POSIX" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "некоректне %(name)r: %(error)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." +msgstr "Створити правило sudo." -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "api has no such namespace: %(name)r" -msgstr "api не надає такого простору назв: %(name)r" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "Додано правило sudo «%(value)s»" -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "Паролі не збігаються" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." +msgstr "Вилучити правило sudo." -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "Команду не реалізовано" +#: ipalib/plugins/sudorule.py:226 +#, python-format +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "Вилучено правило sudo «%(value)s»" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." -msgstr "" -"Клієнтську частину не налаштовано. Віддайте команду ipa-client-install." +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "Змінити правило sudo." -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "Цей запис вже існує" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "Змінено правило sudo «%(value)s»" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" -msgstr "Щоб створити службу вузла, вам слід зареєструвати вузол" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "Знайти правило sudo." -#: ipalib/errors.py:858 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" -msgstr "" -"Реєстраційний запис служби вказано у формі, відмінній від: служба/повна " -"назва вузла: %(reason)s" - -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" -msgstr "" -"Область дії реєстраційного запису не збігається з областю цього сервера IPA" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "встановлено відповідність %(count)d правила sudo" +msgstr[1] "встановлено відповідність %(count)d правил sudo" +msgstr[2] "встановлено відповідність %(count)d правил sudo" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "Для виконання цієї команди потрібні права доступу користувача root" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "Показати правило sudo." -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "Вже є posix-групою" +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." +msgstr "Увімкнути правило sudo." -#: ipalib/errors.py:922 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" -msgstr "" -"Реєстраційний запис вказано у формі, відмінній від користувач@ОБЛАСТЬ: " -"%(principal)r" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "Увімкнено правило sudo «%s»" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" -msgstr "Цей запис вже увімкнено" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." +msgstr "Вимкнути правило sudo." -#: ipalib/errors.py:954 -msgid "This entry is already disabled" -msgstr "Цей запис вже вимкнено" +#: ipalib/plugins/sudorule.py:298 +#, python-format +msgid "Disabled Sudo Rule \"%s\"" +msgstr "Вимкнено правило «%s»" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" -msgstr "Цей запис не можна вмикати або вимикати" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "Додати команди і групи команд sudo, яких стосується правило sudo." -#: ipalib/errors.py:986 -msgid "This entry is not a member" -msgstr "Цього запису немає серед учасників" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "Вилучити команди і групи команд sudo, яких стосується правило sudo." -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "Група не може бути елементом самої себе" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "Додати записи користувачів та груп, яких стосується правило sudo." -#: ipalib/errors.py:1018 -msgid "This entry is already a member" -msgstr "Цей запис вже є серед учасників" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." +msgstr "Вилучити записи користувачів та груп, яких стосується правило sudo." -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Помилка декодування Base64: %(reason)s" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "Додати вузли та групи вузлів, яких стосується правило sudo." -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" -msgstr "Групу не може бути додано як елемент самої себе" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "Вилучити вузли та групи вузлів, яких стосується правило sudo." -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" -msgstr "Не можна вилучати типову групу користувачів" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "Додати користувачів та групи для виконання команд sudo від їхнього імені." -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" -msgstr "Вузол не має відповідного запису DNS A" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "Вилучити користувачів та групи для виконання команд sudo від їхнього імені." -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." -msgstr "Вилучення керованих груп заборонено. Спочатку групу слід від’єднати." +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." +msgstr "Додати групу виконання до запису sudo." -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." -msgstr "У керованої групи не може бути власних правил для паролів." +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "Вилучити групу виконання з запису sudo." -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "«%(entry)s» не містить сертифіката." +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "Додати пункт до правила sudo." -#: ipalib/errors.py:1176 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." -msgstr "Не вдалося створити закриту групу. Група «%(group)s» вже існує." +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "Додано пункт «%s» до правила sudo «%s»" + +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." +msgstr "Вилучити пункт з правила sudo." -#: ipalib/errors.py:1192 +#: ipalib/plugins/sudorule.py:710 #, python-format +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "Вилучено пункт «%s» з правила sudo «%s»" + +#: ipalib/plugins/user.py:29 msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" -msgstr "" -"Під час перевірки виявлено проблему, всі записи учасників %(verb)s: %(exc)s" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" +msgstr "\nКористувачі\n\nКерування записами користувачів. Всі користувачі є користувачами POSIX.\n\nУ IPA передбачено підтримку широкого діапазону форматів імен\nкористувачів, але вам слід враховувати всі обмеження, які накладаються\nвашим робочим середовищем. Наприклад, імена, що починаються з цифри, або\nзанадто довгі імена можуть спричинити проблеми у деяких системах UNIX.\nСкористайтеся командою «ipa config-mod» для зміни формату імені\nкористувача, яке дозволятиметься інструментами IPA.\n\nВимикання облікового запису користувача лише заборонить отримання\nкористувачами нових реєстраційних даних Kerberos. Всі вже отримані\nреєстраційні дані не втратять своєї чинності.\n\nКерування паролями не є завданням цього модуля. Докладніші дані щодо\nкерування паролями можна отримати у відповідь на команду ipa help passwd\n\nПРИКЛАДИ:\n\n Додавання нового користувача:\n ipa user-add --first=Ivan --last=Ivanenko --password tuser1\n\n Пошук всіх користувачів, чиї записи містять рядок «Ivan»:\n ipa user-find Ivan\n\n Пошук всіх користувачів з іменем (не прізвищем) «Ivan»:\n ipa user-find --first=Ivan\n\n Вимикання запису користувача:\n ipa user-disable tuser1\n\n Вмикання запису користувача:\n ipa user-enable tuser1\n\n Вилучення запису користувача:\n ipa user-del tuser1\n" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" -msgstr "не виявлено ні команди, ні запису довідки %(topic)r" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" +msgstr "Доступні ключі Kerberos" + +#: ipalib/plugins/user.py:140 +msgid "user" +msgstr "користувач" + +#: ipalib/plugins/user.py:141 +msgid "users" +msgstr "користувачі" + +#: ipalib/plugins/user.py:177 +msgid "User login" +msgstr "Користувач" + +#: ipalib/plugins/user.py:184 +msgid "First name" +msgstr "Ім'я" + +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "Прізвище" + +#: ipalib/plugins/user.py:191 +msgid "Full name" +msgstr "Повне ім’я" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "зміна конфліктує з іншою внесеною зміною" +#: ipalib/plugins/user.py:196 +msgid "Display name" +msgstr "Екранне ім'я" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" -msgstr "змін не внесено" +#: ipalib/plugins/user.py:201 +msgid "Initials" +msgstr "Ініціали" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:207 +msgid "Home directory" +msgstr "Домашній каталог" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" -msgstr "цим запитом перевищено обмеження" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" +msgstr "Поле GECOS" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:218 +msgid "Login shell" +msgstr "Оболонка входу" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" -msgstr "зміну основного ключа заборонено" +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" +msgstr "Реєстраційний запис Kerberos" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s: можна використовувати лише одне значення." +#: ipalib/plugins/user.py:231 +msgid "Email address" +msgstr "Адреса ел. пошти" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s: некоректний синтаксис." +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "Надіслати запит щодо встановлення пароля користувача" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" -msgstr "Помилковий фільтр пошуку %(info)s" +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "UID" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Не вдалося завершити дію з сертифікатом: %(error)s" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" +msgstr "Ідентифікаційний номер користувача (система призначить його, якщо не буде вказано)" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Помилка форматування сертифіката: %(error)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" +msgstr "Ід. номер групи" -#: ipalib/errors.py:1458 -msgid "Already registered" -msgstr "Вже зареєстровано" +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "Вулиця і будинок" -#: ipalib/errors.py:1474 -msgid "Not registered yet" -msgstr "Ще не зареєстровано" +#: ipalib/plugins/user.py:261 +msgid "City" +msgstr "Місто" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "" -"Список результатів обрізано. Спробуйте точніше визначити критерії пошуку." +#: ipalib/plugins/user.py:265 +msgid "State/Province" +msgstr "Область/провінція" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" -"Отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." +#: ipalib/plugins/user.py:268 +msgid "ZIP" +msgstr "Індекс" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" -"Вивести записи у формі, у якій вони зберігаються на сервері. Стосується лише" -" формату виведення даних." +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" +msgstr "Номер телефону" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" -msgstr "Переспрямувати на сервер замість локального виконання" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "Номер мобільного телефону" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" -msgstr "Словник, що відповідає запису LDAP" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" +msgstr "Номер пейджера" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" -msgstr "Список записів LDAP" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" +msgstr "Номер факсу" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" -msgstr "Виконання всіх команд має призводити до якогось результату" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" +msgstr "Підрозділ" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "помилковий тип" +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "Посада" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "Можна використовувати лише одне значення" +#: ipalib/plugins/user.py:292 +msgid "Manager" +msgstr "Керівник" -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "має дорівнювати True або False" +#: ipalib/plugins/user.py:295 +msgid "Car License" +msgstr "Водійська ліцензія" -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "має бути цілим числом" +#: ipalib/plugins/user.py:298 +msgid "Account disabled" +msgstr "Обліковий запис вимкнено" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:340 #, python-format -msgid "must be at least %(minvalue)d" -msgstr "має бути числом, не меншим за %(minvalue)d" +msgid "manager %(manager)s not found" +msgstr "керування %(manager)s не знайдено" + +#: ipalib/plugins/user.py:359 +msgid "Add a new user." +msgstr "Додати нового користувача." -#: ipalib/parameters.py:1064 +#: ipalib/plugins/user.py:361 #, python-format -msgid "can be at most %(maxvalue)d" -msgstr "не може перевищувати %(maxvalue)d" +msgid "Added user \"%(value)s\"" +msgstr "Додано користувача «%(value)s»" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "має бути десятковим числом" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" +msgstr "Не створювати закриту групу користувача" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:398 #, python-format -msgid "must be at least %(minvalue)f" -msgstr "має бути числом, не меншим за %(minvalue)f" +msgid "can be at most %(len)d characters" +msgstr "не повинне перевищувати %(len)d символів у довжину" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" -msgstr "не може перевищувати %(maxvalue)f" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." +msgstr "Вилучити користувача." -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:477 #, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "має відповідати шаблону «%(pattern)s»" +msgid "Deleted user \"%(value)s\"" +msgstr "Вилучено користувача «%(value)s»" -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "має бути бінарними даними" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." +msgstr "Змінити параметри користувача." -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:488 #, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "має бути розміром, не менше за %(minlength)d байтів" +msgid "Modified user \"%(value)s\"" +msgstr "Змінено користувача «%(value)s»" -#: ipalib/parameters.py:1218 -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "не повинне перевищувати за розміром %(maxlength)d байтів" +#: ipalib/plugins/user.py:510 +msgid "Search for users." +msgstr "Шукати користувачів." -#: ipalib/parameters.py:1228 -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "має бути розміром точно у %(length)d байтів" +#: ipalib/plugins/user.py:517 +msgid "Self" +msgstr "Self" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "має бути текстом у Unicode" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" +msgstr "Показати запис користувача для поточного реєстраційного запису Kerberos" -#: ipalib/parameters.py:1277 +#: ipalib/plugins/user.py:539 #, python-format -msgid "must be at least %(minlength)d characters" -msgstr "має бути не меншим за %(minlength)d символів довжиною" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "встановлено відповідність %(count)d користувача" +msgstr[1] "встановлено відповідність %(count)d користувачів" +msgstr[2] "встановлено відповідність %(count)d користувачів" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "не повинне перевищувати %(maxlength)d символів у довжину" +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "Показати дані щодо користувача." -#: ipalib/parameters.py:1297 +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "Вимкнути обліковий запис користувача." + +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be exactly %(length)d characters" -msgstr "має бути точно %(length)d символів у довжину" +msgid "Disabled user account \"%(value)s\"" +msgstr "Вимкнено обліковий запис користувача «%(value)s»" + +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." +msgstr "Увімкнути обліковий запис користувача." -#: ipalib/parameters.py:1315 +#: ipalib/plugins/user.py:585 #, python-format -msgid "The character '%(char)r' is not allowed." -msgstr "Не можна використовувати символ «%(char)r»." +msgid "Enabled user account \"%(value)s\"" +msgstr "Увімкнено обліковий запис користувача «%(value)s»" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." +msgstr "\n Розблокувати обліковий запис користувача\n\n Обліковий запис може бути заблоковано, якщо відповідно до правил безпеки\n користувач перевищить обмеження на кількість введення помилкових паролів\n протягом певного часу. Запис блокується тимчасово, його може бути\n розблоковано адміністратором." -#: ipalib/parameters.py:1355 +#: ipalib/plugins/user.py:611 #, python-format -msgid "must be one of %(values)r" -msgstr "має бути одним зі таких значень: %(values)r" +msgid "Unlocked account \"%(value)s\"" +msgstr "Розблоковано обліковий запис «%(value)s»" -#: ipalib/util.py:200 +#: ipalib/util.py:192 #, python-format msgid "Permission denied: %(file)s" msgstr "Доступ заборонено: %(file)s" -#: ipalib/x509.py:174 +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "назва облікового запису електронної пошти може складатися лише з літер, цифр, символів «-», «_» і крапок. Не можна використовувати у назві послідовності з символів «-», «_» та «.»." + +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "не може бути довшим за 255 символів" + +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "занадто багато символів «@»" + +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "назву домену адрес вказано неправильно («example.com» замість «example»)" + +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" +msgstr "назва домену має складатися лише з літер, цифр і символів «-»" + +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "назву вузла вказано не повністю" + +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" +msgstr "частини назви вузла мають складатися лише з літер, цифр і символів «-» (символ «-» не повинен бути останнім)" + +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "Запис видавця «%(issuer)s» не відповідає очікуваному значенню видавця" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "Не вдалося обмінятися даними з CMS (%s)" @@ -9488,14 +7312,17 @@ msgstr "Апаратна платформа вузла (наприклад, «Le msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9»)" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "клас об’єктів %s не знайдено" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form " "\"%(subject_base)s\"" -msgstr "" -"Об’єкт запиту «%(request_subject)s» вказано у формі, відмінній від " -"«%(subject_base)s»" +msgstr "Об’єкт запиту «%(request_subject)s» вказано у формі, відмінній від «%(subject_base)s»" #: ipaserver/plugins/selfsign.py:104 #, python-format @@ -9514,293 +7341,297 @@ msgstr "не вдалося отримати наступний серійний msgid "certutil failure" msgstr "помилка certutil" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "не вдалося відкрити файл налаштувань %s\n" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "не вдалося обробити функцією stat() файл налаштування %s\n" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "не вистачає пам'яті\n" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "помилка читання\n" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" -msgstr "Невдала спроба ініціалізації контексту Kerberos\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "Невдала спроба ініціалізації контексту Kerberos: %s (%d)\n" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" +msgstr "Не вдалося обробити реєстраційний запис: %s (%d)\n" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "Немає основних системних типів шифрування?!\n" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "Не вистачає пам'яті!?\n" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "Не вистачає пам'яті\n" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "Попередження: невідомий тип шифрування: [%s]\n" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "Попередження: невідомий тип солі (salt): [%s]\n" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "Спроба порівняння значень типу шифрування зазнала невдачі!\n" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "Не вдалося створити випадковий ключ!\n" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "Не вдалося створити ключ!\n" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "Не вистачає пам'яті!\n" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "Помилковий або непідтримуваний тип солі (salt) (%d)!\n" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "Жоден з ключів не прийнято KDC\n" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "Не вистачає пам'яті \n" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "Не вистачає пам'яті!\n" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "Не вдалося створити керування!\n" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "Не вдалося ініціалізувати бібліотеку ldap!\n" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "Не вдалося встановити LDAP_OPT_X_SASL_NOCANON\n" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "Не вдалося встановити значення параметрів ldap!\n" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "Невдала спроба простого прив’язування\n" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "Невдала спроба прив’язування SASL!\n" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "Невдала спроба виконання дії! %s\n" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "Немає керування відповіддю!\n" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "Спроба виконання ber_init() зазнала невдачі. Некоректне керування?!\n" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "Спроба виконання ber_scanf() зазнала невдачі. Некоректне керування?!\n" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "Новий пароль реєстраційного запису" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "Перевірка пароля реєстраційного запису" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "Виводити мінімум даних" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "Виводити лише повідомлення про помилки" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "Встановити зв’язок з вказаним сервером KDC" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "Назва сервера" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" -"Реєстраційний запис, для якого слід отримати таблицю ключів (приклад: " -"ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "Реєстраційний запис, для якого слід отримати таблицю ключів (приклад: ftp/ftp.example.com@EXAMPLE.COM)" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "Назва реєстраційного запису служби Kerberos" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "Файл, у якому зберігатимуться дані таблиці ключів" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "Назва файла таблиці ключів" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "Типи шифрування, запит щодо яких слід надсилати" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "Список типів шифрування, відокремлених комами" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "Показати список дозволених типів шифрування і завершити роботу" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "Дозволені типи шифрування" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" -msgstr "" -"Запитати невипадковий пароль, який слід використати для реєстраційного " -"запису" +msgstr "Запитати невипадковий пароль, який слід використати для реєстраційного запису" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "DN LDAP" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" -msgstr "" -"DN, до якого слід виконати прив’язку, якщо не використовується kerberos" +msgstr "DN, до якого слід виконати прив’язку, якщо не використовується kerberos" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "Пароль LDAP" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "пароль, який слід використати, якщо не використовується kerberos" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "Невдала спроба ініціалізації контексту Kerberos\n" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "Підтримувані типи шифрування:\n" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "Попередження: не вдалося виконати перетворення типу (№%d)\n" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "У разі використання прив’язки DN слід вказати пароль прив’язки.\n" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" -msgstr "" -"Попередження: для випадкових паролів типи солі (salt) не мають значення " -"(див. параметр -P)\n" +msgstr "Попередження: для випадкових паролів типи солі (salt) не мають значення (див. параметр -P)\n" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "Некоректна назва реєстраційного запису служби\n" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "" -"Не знайдено кешу реєстраційних даних Kerberos. Чи є у вас квиток Kerberos?\n" +msgstr "Не знайдено кешу реєстраційних даних Kerberos. Чи є у вас квиток Kerberos?\n" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "" -"Не знайдено реєстраційного запису користувача Kerberos. Ви маєте ви " -"коректний кеш реєстраційних даних?\n" +msgstr "Не знайдено реєстраційного запису користувача Kerberos. Ви маєте ви коректний кеш реєстраційних даних?\n" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "Не вдалося відкрити таблицю ключів\n" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "Не вдалося створити вихідні дані для ключа\n" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "Не вдалося додати ключ до таблиці ключів\n" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "Не вдалося закрити таблицю ключів\n" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "Таблицю ключів успішно отримати і збережено до: %s\n" @@ -9820,256 +7651,236 @@ msgstr "Немає дозволу на запис до файла таблиці msgid "access() on %s failed: errno = %d\n" msgstr "Невдала спроба виконання access() для %s: номер помилки = %d\n" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "Не вистачає пам'яті!" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "Не вдалося ініціалізувати з’єднання з сервером LDAP: %s" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "Не вдалося увімкнути SSL у LDAP\n" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "Не вдалося встановити версію LDAP\n" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "Невдала спроба прив’язки: %s\n" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" -msgstr "" -"Спроба пошуку %s у rootdse завершилася невдало з повідомленням про помилку " -"%d" +msgstr "Спроба пошуку %s у rootdse завершилася невдало з повідомленням про помилку %d" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "Немає значень %s" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" -"Спроба пошуку ipaCertificateSubjectBase завершилася невдало з повідомлення " -"про помилку %d" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" -msgstr "Не вдалося визначити кореневий DN %s\n" +msgid "Search for IPA namingContext failed with error %d\n" +msgstr "Спроба пошуку namingContext IPA завершилася помилкою %d\n" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" -msgstr "Не вдалося визначити призначення сертифіката %s\n" +msgid "IPA namingContext not found\n" +msgstr "namingContext IPA не знайдено\n" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" -msgstr "Не вдалося створити з’єднання LDAP з %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" +msgstr "Спроба пошуку ipaCertificateSubjectBase завершилася невдало з повідомлення про помилку %d" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" -msgstr "Пошук на основі %s у %s\n" +msgid "Unable to determine root DN of %s\n" +msgstr "Не вдалося визначити кореневий DN %s\n" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" -msgstr "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" +msgstr "Некоректний пароль.\n" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" -msgstr "Не вдалося знайти вузол «%s»\n" +msgid "Unable to determine certificate subject of %s\n" +msgstr "Не вдалося визначити призначення сертифіката %s\n" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" -msgstr "Не вдалося отримати binddn для вузла «%s»\n" +msgid "Enrollment failed. %s\n" +msgstr "Помилка реєстрування. %s\n" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" -msgstr "У вузла вже є реєстраційний запис, повторна спроба прив’язки\n" +msgid "principal not found in XML-RPC response\n" +msgstr "реєстраційного запису не знайдено у XML-RPC відповіді\n" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "Вузол вже приєднано.\n" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "Некоректний пароль.\n" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "у запису вузла реєстраційного запису не знайдено\n" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "реєстраційного запису не знайдено у XML-RPC відповіді\n" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "Не вдалося визначити сервер IPA з %s\n" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "Назву вузла слід вказувати повністю: %s\n" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" -msgstr "" -"Не вдалося долучити вузол: невдала спроба ініціалізації контексту Kerberos\n" +msgstr "Не вдалося долучити вузол: невдала спроба ініціалізації контексту Kerberos\n" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "Помилка при визначенні адрес таблиці ключів: %s.\n" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "Помилка під час отримання типової області дії Kerberos: %s.\n" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "Помилка під час обробки «%s»: %s.\n" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "Помилка під час отримання початкових реєстраційних даних: %s.\n" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "Не вдалося створити кеш реєстраційних даних Kerberos\n" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "Помилка під час спроби збереження реєстраційних даних у кеші: %s.\n" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "Успішне скасування реєстрації.\n" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "Спроба скасування реєстрації зазнала невдачі.\n" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "у відповіді XML-RPC не знайдено результату\n" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" -msgstr "" -"Не вдалося долучити вузол: не знайдено кешу реєстраційних даних Kerberos\n" +msgstr "Не вдалося долучити вузол: не знайдено кешу реєстраційних даних Kerberos\n" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" -msgstr "" -"Не вдалося долучити вузол: не знайдено реєстраційного запису користувача " -"Kerberos і не вказано пароля вузла.\n" +msgstr "Не вдалося долучити вузол: не знайдено реєстраційного запису користувача Kerberos і не вказано пароля вузла.\n" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "невдала спроба виконання fork()\n" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "Не знайдено ipa-getkeytab\n" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "Помилкові права доступу до ipa-getkeytab?\n" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "спроба виконання ipa-getkeytab зазнала невдачі, номер помилки %d\n" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "дочірній процес завершив роботу з повідомленням %d\n" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "Базовий об’єкт сертифікації: %s\n" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "Вивести дані XML-RPC без обробки у режимі GSSAPI" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "«Мовчазний» режим. Буде показано лише повідомлення про помилки." -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "Скасувати реєстрацію цього вузла на сервері IPA" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "Назва вузла цього сервера" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "назва вузла" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "Сервер IPA, який слід використовувати" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "Визначає, де слід зберігати дані таблиці ключів." -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "назва файла" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "Пароль LDAP (якщо не використовується Kerberos)" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "пароль" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "Базовий DN LDAP" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "Базовий DN" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -10160,5 +7971,3 @@ msgstr "Спроба закриття таблиці ключів зазнала #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "krb5_kt_close %d: %s\n" - - diff --git a/install/po/zh_CN.po b/install/po/zh_CN.po index 1d4568ab5..925b0d6cd 100644 --- a/install/po/zh_CN.po +++ b/install/po/zh_CN.po @@ -2,162 +2,512 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Jake Li , 2010. # jdennis , 2011. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" -"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/fedora/team/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/fedora/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "再次输入 %(label)s进行校验: " + +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" +msgstr "密码不匹配!" + +#: ipalib/cli.py:592 +msgid "Cancelled." +msgstr "已取消" + +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" +msgstr "" + +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." +msgstr "" + +#: ipalib/cli.py:772 +msgid "Built-in commands:" +msgstr "" + +#: ipalib/cli.py:774 +msgid "Help subtopics:" +msgstr "" + +#: ipalib/cli.py:777 +msgid "Help topics:" +msgstr "" + +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." +msgstr "" + +#: ipalib/cli.py:816 +msgid "Topic commands:" +msgstr "" + +#: ipalib/cli.py:827 +msgid "Command name" +msgstr "" + +#: ipalib/cli.py:1130 +msgid "No file to read" +msgstr "" + +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgstr "" + +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "" + +#: ipalib/errors.py:337 +msgid "an internal error has occurred" +msgstr "发生了一个内部错误" + +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" +msgstr "服务器%(server)r上发生了一个内部错误" + +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" +msgstr "未知的命令%(name)r" + +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" +msgstr "" + +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" +msgstr "无法连接到%(uri)r: %(error)s" + +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "无效的JSON-RPC请求: %(error)s" + +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "" + +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "" + +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" +msgstr "" + +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" +msgstr "" + +#: ipalib/errors.py:517 +msgid "No credentials cache found" +msgstr "" + +#: ipalib/errors.py:533 +msgid "Ticket expired" +msgstr "" + +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" +msgstr "" + +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" +msgstr "" + +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" +msgstr "" + +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "" + +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" +msgstr "命令 %(name)r不需要参数" + +#: ipalib/errors.py:664 +#, 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] "" + +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" +msgstr "" + +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" +msgstr "需要%(name)r" + +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" +msgstr "%(name)r无效: %(error)s" + +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" +msgstr "API没有这个名字空间: %(name)r" + +#: ipalib/errors.py:767 +msgid "Passwords do not match" +msgstr "密码不匹配" + +#: ipalib/errors.py:776 +msgid "Command not implemented" +msgstr "命令没有实现" + +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." +msgstr "" + +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +#: ipalib/errors.py:829 +msgid "This entry already exists" +msgstr "条目已经存在" + +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" +msgstr "" + +#: ipalib/errors.py:861 +#, python-format msgid "" -"\n" -"Sub-package containing all core plugins.\n" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "" + +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "" + +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "该命令需要root访问权限" + +#: ipalib/errors.py:909 +msgid "This is already a posix group" +msgstr "这已经是一个posix组" + +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" +msgstr "" + +#: ipalib/errors.py:941 +msgid "This entry is already enabled" +msgstr "" + +#: ipalib/errors.py:957 +msgid "This entry is already disabled" +msgstr "" + +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" +msgstr "" + +#: ipalib/errors.py:989 +msgid "This entry is not a member" +msgstr "" + +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" +msgstr "一个组不能是自己的成员" + +#: ipalib/errors.py:1021 +msgid "This entry is already a member" +msgstr "" + +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64解码失败: %(reason)s" + +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "一个组不能是自己的成员" + +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "默认的用户组不成被删除" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "" + +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format +msgid "" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "" + +#: ipalib/errors.py:1230 +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" + +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" +msgstr "" + +#: ipalib/errors.py:1278 +msgid "change collided with another change" +msgstr "修改冲突" + +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" +msgstr "" + +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "" + +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" +msgstr "" + +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" +msgstr "" + +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "" + +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "" + +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" +msgstr "" + +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "" + +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "" + +#: ipalib/errors.py:1496 +msgid "Already registered" +msgstr "" + +#: ipalib/errors.py:1512 +msgid "Not registered yet" +msgstr "" + +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" +msgstr "结果被截断,请尝试更明确的搜索" + +#: ipalib/frontend.py:821 +msgid "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." +msgstr "" + +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." +msgstr "" + +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" +msgstr "" + +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "" + +#: ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "" + +#: ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "" + +#: ipalib/parameters.py:358 +msgid "incorrect type" +msgstr "不正确的类型" + +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" +msgstr "只允许一个值" + +#: ipalib/parameters.py:1023 +msgid "must be True or False" +msgstr "必须是True或False" + +#: ipalib/parameters.py:1124 +msgid "must be an integer" +msgstr "必须是一个整数" + +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" +msgstr "必须是一个十进制数" + +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/parameters.py:1345 +msgid "must be binary data" +msgstr "必须是二进制数据" + +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "" + +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "" + +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" +msgstr "必须是Unicode文本" + +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" +msgstr "" + +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "" + +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "" + +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "" + +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." +msgstr "" + +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" +msgstr "" + +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" #: ipalib/plugins/aci.py:215 @@ -187,6 +537,7 @@ msgid "One of group, permission or self is required" msgstr "" #: ipalib/plugins/aci.py:251 +#, python-format msgid "Group '%s' does not exist" msgstr "组 '%s' 不存在" @@ -195,20 +546,12 @@ msgid "empty filter" msgstr "" #: ipalib/plugins/aci.py:294 +#, python-format msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:379 +#, python-format msgid "ACI with name \"%s\" not found" msgstr "" @@ -222,13 +565,6 @@ msgid "" "none)" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:412 msgid "ACIs" msgstr "ACIs" @@ -237,221 +573,437 @@ msgstr "ACIs" msgid "ACI name" msgstr "ACI名称" -#: ipalib/plugins/aci.py:422 +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 msgid "Permission" msgstr "" -#: ipalib/plugins/aci.py:423 +#: ipalib/plugins/aci.py:424 msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 msgid "User group" msgstr "用户组" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 msgid "Permissions" msgstr "权限" -#: ipalib/plugins/aci.py:433 +#: ipalib/plugins/aci.py:436 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 msgid "Attributes" msgstr "属性" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 msgid "Type" msgstr "类型" -#: ipalib/plugins/aci.py:445 +#: ipalib/plugins/aci.py:452 msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/aci.py:450 +#: ipalib/plugins/aci.py:458 msgid "Member of" msgstr "" -#: ipalib/plugins/aci.py:451 +#: ipalib/plugins/aci.py:459 msgid "Member of a group" msgstr "组成员" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 msgid "Filter" msgstr "过滤" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 msgid "Subtree" msgstr "子树" -#: ipalib/plugins/aci.py:461 +#: ipalib/plugins/aci.py:471 msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 msgid "Target group" msgstr "目标组" -#: ipalib/plugins/aci.py:466 +#: ipalib/plugins/aci.py:477 msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:470 +#: ipalib/plugins/aci.py:482 msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:471 +#: ipalib/plugins/aci.py:483 msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:478 -msgid "" -"\n" -" Create new ACI.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:482 +#: ipalib/plugins/aci.py:495 +#, python-format msgid "Created ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:487 +#: ipalib/plugins/aci.py:500 msgid "Test the ACI syntax but don't write anything" msgstr "" -#: ipalib/plugins/aci.py:493 +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" Execute the aci-create operation.\n" +"Auto Membership Rule.\n" "\n" -" Returns the entry as it will be created in LDAP.\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" +"a group or hostgroup based upon attribute information.\n" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" + +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" +msgstr "" + +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" +msgstr "" + +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" +msgstr "" + +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" +msgstr "" + +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" +msgstr "" + +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" +msgstr "" + +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" +msgstr "" + +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" +msgstr "描述" + +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" +msgstr "" + +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" +msgstr "" + +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" +msgstr "" + +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/aci.py:533 +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." +msgstr "" + +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Delete ACI.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/aci.py:543 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Execute the aci-delete operation.\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" +msgstr "" + +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" +msgstr "" + +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" +msgstr "" + +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 +msgid "" "\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" +" Override this so we can add completed and failed to the return result.\n" " " msgstr "" -#: ipalib/plugins/aci.py:576 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Modify ACI.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/aci.py:633 +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" +" Override this so we can set completed and failed.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:434 +msgid "" "\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" +" Modify an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:450 +msgid "" "\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" +" Delete an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:466 +msgid "" "\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" +" Search for automember rules.\n" " " msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" msgstr[0] "" -#: ipalib/plugins/aci.py:823 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Display a single ACI given an ACI name.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +" Set default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Rename an ACI.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/plugins/automember.py:548 +msgid "No default group set" +msgstr "" + +#: ipalib/plugins/automember.py:567 +msgid "" +"\n" +" Display information about the default automember groups.\n" +" " msgstr "" -#: ipalib/plugins/automount.py:20 +#: ipalib/plugins/automount.py:29 msgid "" "\n" "Automount\n" @@ -539,1686 +1091,1733 @@ msgid "" " ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" +msgstr "" + +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/automount.py:190 +#: ipalib/plugins/automount.py:195 msgid "Automount Locations" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" +msgstr "" + +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 msgid "Location" msgstr "位置" -#: ipalib/plugins/automount.py:197 +#: ipalib/plugins/automount.py:202 msgid "Automount location name." msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." +msgstr "" + +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." +msgstr "" + +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/automount.py:221 +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." +msgstr "" + +#: ipalib/plugins/automount.py:323 +msgid "Master file" +msgstr "" + +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." +msgstr "" + +#: ipalib/plugins/automount.py:331 msgid "" -"\n" -" Delete an automount location.\n" -" " +"Continuous operation mode. Errors are reported but the process continues." +msgstr "" + +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" +msgstr "" + +#: ipalib/plugins/automount.py:512 +msgid "automount map" +msgstr "" + +#: ipalib/plugins/automount.py:513 +msgid "automount maps" +msgstr "" + +#: ipalib/plugins/automount.py:520 +msgid "Map" +msgstr "" + +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." +msgstr "" + +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" +msgstr "" + +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" +msgstr "" + +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." +msgstr "" + +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." +msgstr "" + +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." +msgstr "" + +#: ipalib/plugins/automount.py:594 +msgid "automount key" +msgstr "" + +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/automount.py:229 +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" +msgstr "" + +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." +msgstr "" + +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" +msgstr "" + +#: ipalib/plugins/automount.py:615 +msgid "description" +msgstr "描述" + +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -" Display an automount location.\n" -" " +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "" + +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" +msgstr "" + +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/automount.py:237 +#: ipalib/plugins/automount.py:678 +#, python-format msgid "" -"\n" -" Search for an automount location.\n" -" " +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "" + +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." +msgstr "" + +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." +msgstr "" + +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:768 +msgid "Mount point" +msgstr "挂载点" + +#: ipalib/plugins/automount.py:772 +msgid "Parent map" +msgstr "" + +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." +msgstr "" + +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automount.py:846 +msgid "New mount information" +msgstr "" + +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." +msgstr "" + +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." +msgstr "" + +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" +msgstr "密码" + +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" +msgstr "失败的成员" + +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" +msgstr "成员用户" + +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" +msgstr "成员组" + +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" +msgstr "成员主机" + +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" +msgstr "主机组成员" + +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" +msgstr "主机组成员" + +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" +msgstr "" + +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" +msgstr "" + +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" +msgstr "" + +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" +msgstr "" + +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" +msgstr "" + +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" +msgstr "" + +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" +msgstr "" + +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" +msgstr "" + +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" +msgstr "" + +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" +msgstr "" + +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:148 +msgid "External host" +msgstr "外部主机" + +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" +msgstr "" + +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/automount.py:322 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" -msgstr "描述" - -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/automount.py:521 +#: ipalib/plugins/baseldap.py:632 msgid "" -"\n" -" Create a new automount map.\n" -" " +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/automount.py:529 +#: ipalib/plugins/baseldap.py:638 msgid "" -"\n" -" Delete an automount map.\n" -" " +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/automount.py:548 +#: ipalib/plugins/baseldap.py:644 msgid "" -"\n" -" Modify an automount map.\n" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/automount.py:572 +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 msgid "" -"\n" -" Automount key object.\n" -" " +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" -msgstr "描述" - -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" -msgstr "挂载点" - -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/automount.py:836 -msgid "" -"\n" -" Search for an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" -msgstr "失败的成员" - -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" -msgstr "成员用户" - -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" -msgstr "成员组" - -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" -msgstr "成员主机" - -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" -msgstr "主机组成员" - -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" -msgstr "主机组成员" - -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/cert.py:43 +msgid "" +"\n" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" +"\n" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" -msgstr "" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" +msgstr "证书" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" -msgstr "" +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" +msgstr "主题" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" -msgstr "外部主机" - -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" -msgstr "" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" +msgstr "序列号" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/baseldap.py:197 -msgid "" -"\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" -"\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\n" -" " -msgstr "" +#: ipalib/plugins/cert.py:404 +msgid "Request id" +msgstr "请求号" + +#: ipalib/plugins/cert.py:410 +msgid "Request status" +msgstr "请求状态" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" +msgstr "撤消原因" + +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/cert.py:524 +msgid "Revoked" +msgstr "撤销" + +#: ipalib/plugins/cert.py:532 +msgid "Reason" +msgstr "原因" + +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" +msgstr "撤消证书的原因(0-10)" + +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/baseldap.py:444 +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" +msgstr "错误" + +#: ipalib/plugins/config.py:31 msgid "" "\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" +"Server configuration\n" "\n" -" allow_only tells us what mode to check in:\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" +"NOTES:\n" "\n" -" If False then those attributes are not allowed.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:474 -msgid "" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Callback registration interface\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:561 -msgid "" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Create a new entry in LDAP.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:703 -msgid "" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:727 -msgid "" +"EXAMPLES:\n" "\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " -msgstr "" - -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." -msgstr "" - -#: ipalib/plugins/baseldap.py:750 -msgid "" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Retrieve an LDAP entry.\n" -" " +" Show all configuration options:\n" +" ipa config-show --all\n" +"\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/baseldap.py:821 -msgid "" -"\n" -" Update an LDAP entry.\n" -" " +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" -msgstr "" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" +msgstr "主目录" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " -msgstr "" +#: ipalib/plugins/config.py:105 +msgid "Default shell" +msgstr "默认shell" -#: ipalib/plugins/baseldap.py:1078 -msgid "" -"\n" -" Base class for member manipulation.\n" -" " +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/baseldap.py:1120 -msgid "" -"\n" -" Add other LDAP entries to members.\n" -" " -msgstr "" +#: ipalib/plugins/config.py:110 +msgid "Default users group" +msgstr "默认用户组" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/config.py:120 +msgid "Search time limit" +msgstr "搜索时间限制" + +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Remove LDAP entries from members.\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/baseldap.py:1335 -msgid "" -"\n" -" Retrieve all LDAP entries matching the given criteria.\n" -" " -msgstr "" +#: ipalib/plugins/config.py:132 +msgid "User search fields" +msgstr "用户搜索字段" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/config.py:138 +msgid "" +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/baseldap.py:1552 -msgid "" -"\n" -" Base class for reverse member manipulation.\n" -" " +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/baseldap.py:1574 -msgid "" -"\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" -" " +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/baseldap.py:1687 -msgid "" -"\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" -" " +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/batch.py:21 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/cert.py:22 -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" -"\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -"\n" -"In order to request a certificate:\n" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -"\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/cert.py:142 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " -msgstr "" - -#: ipalib/plugins/cert.py:162 -msgid "" +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" "\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" -msgstr "证书" - -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" -msgstr "主题" - -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 +msgid "" +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" -msgstr "序列号" - -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" -msgstr "请求号" - -#: ipalib/plugins/cert.py:408 -msgid "Request status" -msgstr "请求状态" - -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" -msgstr "撤消原因" - -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" -msgstr "撤销" - -#: ipalib/plugins/cert.py:534 -msgid "Reason" -msgstr "原因" - -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" -msgstr "撤消证书的原因(0-10)" - -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " -msgstr "" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" -msgstr "错误" - -#: ipalib/plugins/config.py:20 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Manage the IPA configuration\n" +"Domain Name System (DNS)\n" "\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" +"Manage DNS zone and resource records.\n" "\n" -" To show the current configuration:\n" -" ipa config-show\n" +"EXAMPLES:\n" "\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available options are:\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"User management options:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -"Server Configuration.\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" "\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" "\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/config.py:80 -msgid "" -"\n" -" IPA configuration object\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" -msgstr "主目录" - -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" -msgstr "默认shell" - -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" -msgstr "默认用户组" - -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" -msgstr "搜索时间限制" - -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" -msgstr "用户搜索字段" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" +msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" -msgstr "迁移模式" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" +msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/dns.py:332 +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/config.py:183 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Modify configuration options.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" +msgstr "" + +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" +msgstr "" + +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" msgstr "" -#: ipalib/plugins/delegation.py:79 +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/delegation.py:95 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Delegation object.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 +#: ipalib/plugins/dns.py:468 msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/delegation.py:152 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Add a new delegation.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/delegation.py:197 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Modify a delegation.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" -msgstr "DNS" - -#: ipalib/plugins/dns.py:289 +#: ipalib/plugins/dns.py:652 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:290 +#: ipalib/plugins/dns.py:653 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:296 +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" +msgstr "" + +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" +msgstr "" + +#: ipalib/plugins/dns.py:665 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:308 +#: ipalib/plugins/dns.py:678 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:309 +#: ipalib/plugins/dns.py:679 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:316 +#: ipalib/plugins/dns.py:686 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:317 +#: ipalib/plugins/dns.py:687 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:324 +#: ipalib/plugins/dns.py:694 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:325 +#: ipalib/plugins/dns.py:695 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:332 +#: ipalib/plugins/dns.py:702 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:333 +#: ipalib/plugins/dns.py:703 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:340 +#: ipalib/plugins/dns.py:710 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:341 +#: ipalib/plugins/dns.py:711 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:349 +#: ipalib/plugins/dns.py:719 msgid "SOA time to live" msgstr "" -#: ipalib/plugins/dns.py:350 +#: ipalib/plugins/dns.py:720 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:354 +#: ipalib/plugins/dns.py:724 msgid "SOA class" msgstr "" -#: ipalib/plugins/dns.py:355 +#: ipalib/plugins/dns.py:725 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:365 +#: ipalib/plugins/dns.py:735 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:366 +#: ipalib/plugins/dns.py:736 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:372 +#: ipalib/plugins/dns.py:742 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:373 +#: ipalib/plugins/dns.py:743 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:388 +#: ipalib/plugins/dns.py:759 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:391 +#: ipalib/plugins/dns.py:762 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:397 +#: ipalib/plugins/dns.py:775 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:431 -msgid "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:439 -msgid "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:468 -msgid "" -"\n" -" Disable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:735 +#: ipalib/plugins/dns.py:972 +#, 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:740 +#: ipalib/plugins/dns.py:977 +#, python-format msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:792 +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." +msgstr "" + +#: ipalib/plugins/dns.py:1250 +#, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:802 +#: ipalib/plugins/dns.py:1259 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:807 +#: ipalib/plugins/dns.py:1264 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:834 +#: ipalib/plugins/dns.py:1291 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:835 +#: ipalib/plugins/dns.py:1292 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:845 +#: ipalib/plugins/dns.py:1302 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:875 +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" +msgstr "" + +#: ipalib/plugins/dns.py:1331 +#, python-format msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:936 +#: ipalib/plugins/dns.py:1389 +#, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:940 +#: ipalib/plugins/dns.py:1393 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:962 +#: ipalib/plugins/dns.py:1415 +#, python-format msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" "Entitlements\n" @@ -2255,183 +2854,128 @@ msgid "" "Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/entitle.py:106 -msgid "" -"\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 msgid "UUID" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 msgid "Product" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 msgid "Quantity" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 msgid "Consumed" msgstr "" - -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " -msgstr "" - -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." -msgstr "" - -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " + +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/entitle.py:380 -msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:394 +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:397 +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/entitle.py:460 -msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:479 +#: ipalib/plugins/entitle.py:472 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:483 +#: ipalib/plugins/entitle.py:476 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" -msgstr "密码" - -#: ipalib/plugins/entitle.py:495 +#: ipalib/plugins/entitle.py:488 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:666 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:20 +#: ipalib/plugins/group.py:26 msgid "" "\n" "Groups of users\n" "\n" "Manage groups of users. By default, new groups are POSIX groups. You\n" "can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" "converted to non-POSIX groups.\n" "\n" "Every group must have a description.\n" @@ -2474,145 +3018,122 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/group.py:80 +msgid "group" +msgstr "" + +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/group.py:100 +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 msgid "User Groups" msgstr "用户组" -#: ipalib/plugins/group.py:108 +#: ipalib/plugins/group.py:101 +msgid "User Group" +msgstr "" + +#: ipalib/plugins/group.py:109 msgid "Group name" msgstr "组名" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "组描述" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 msgid "GID" msgstr "GID" -#: ipalib/plugins/group.py:120 +#: ipalib/plugins/group.py:121 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:128 -msgid "" -"\n" -" Create a new group.\n" -" " +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:132 +#: ipalib/plugins/group.py:131 +#, python-format msgid "Added group \"%(value)s\"" msgstr "已添加组\"%(value)s\"" -#: ipalib/plugins/group.py:137 +#: ipalib/plugins/group.py:136 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:155 +#, python-format msgid "Deleted group \"%(value)s\"" msgstr "已删除组\"%(value)s\"" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:189 +#: ipalib/plugins/group.py:185 +#, python-format msgid "Modified group \"%(value)s\"" msgstr "已修改组\"%(value)s\"" -#: ipalib/plugins/group.py:194 +#: ipalib/plugins/group.py:190 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:215 -msgid "" -"\n" -" Search for groups.\n" -" " +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:227 +#, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 +#: ipalib/plugins/group.py:233 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" #: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:285 +#: ipalib/plugins/group.py:284 +#, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " -msgstr "" - -#: ipalib/plugins/group.py:306 +#: ipalib/plugins/group.py:305 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:312 +#: ipalib/plugins/group.py:311 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:331 +#: ipalib/plugins/group.py:330 msgid "Not a managed group" msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/hbacrule.py:25 msgid "" "\n" "Host-based access control\n" @@ -2634,7 +3155,7 @@ msgid "" "\n" " Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" " anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -2642,7 +3163,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -2651,7 +3172,7 @@ msgid "" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" " ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -2662,262 +3183,210 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." +msgstr "" + +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" +msgstr "" + +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" +msgstr "" + +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/hbacrule.py:126 +#: ipalib/plugins/hbacrule.py:132 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 msgid "Rule name" msgstr "规则名" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" -msgstr "规则类型(允许或禁止)" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" +msgstr "" -#: ipalib/plugins/hbacrule.py:137 +#: ipalib/plugins/hbacrule.py:143 msgid "Rule type" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 msgid "User category" msgstr "用户类别" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 msgid "Host category" msgstr "主机类别" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:155 +#: ipalib/plugins/hbacrule.py:165 msgid "Source host category" msgstr "源主机类别" -#: ipalib/plugins/hbacrule.py:156 +#: ipalib/plugins/hbacrule.py:166 msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:161 +#: ipalib/plugins/hbacrule.py:171 msgid "Service category" msgstr "" -#: ipalib/plugins/hbacrule.py:162 +#: ipalib/plugins/hbacrule.py:172 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 msgid "Enabled" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 msgid "Users" msgstr "用户" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" -msgstr "用户组" - -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 msgid "Hosts" msgstr "主机" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 msgid "Host Groups" msgstr "主机组" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 msgid "Services" msgstr "服务" -#: ipalib/plugins/hbacrule.py:206 +#: ipalib/plugins/hbacrule.py:216 msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:215 -msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:227 +#, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:230 -msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:234 +#: ipalib/plugins/hbacrule.py:240 +#, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:248 +#, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:273 +#, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:286 -msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:290 +#: ipalib/plugins/hbacrule.py:288 +#, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:315 -msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:319 +#: ipalib/plugins/hbacrule.py:315 +#, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:344 -msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 msgid "Access time" msgstr "访问时间" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:425 -msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 -msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacsvc.py:19 +#: ipalib/plugins/hbacsvc.py:27 msgid "" "\n" "HBAC Services\n" @@ -2942,82 +3411,76 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" #: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "服务名" +msgid "HBAC Services" +msgstr "" #: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" +msgstr "服务名" + +#: ipalib/plugins/hbacsvc.py:80 msgid "HBAC service description" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:85 +#: ipalib/plugins/hbacsvc.py:90 +#, python-format msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:94 +#: ipalib/plugins/hbacsvc.py:98 +#, python-format msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvc.py:104 +#: ipalib/plugins/hbacsvc.py:106 +#, python-format msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/hbacsvc.py:114 +#: ipalib/plugins/hbacsvc.py:115 +#, python-format msgid "%(count)d HBAC service matched" msgid_plural "%(count)d HBAC services matched" msgstr[0] "" #: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 +#: ipalib/plugins/hbacsvcgroup.py:24 msgid "" "\n" "HBAC Service Groups\n" @@ -3044,92 +3507,243 @@ msgid "" " ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:71 msgid "Service group name" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 +#: ipalib/plugins/hbacsvcgroup.py:78 msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." +msgstr "" + +#: ipalib/plugins/hbactest.py:27 msgid "" "\n" -" Add a new HBAC service group.\n" -" " -msgstr "" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" +msgstr "用户名" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" - -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/host.py:42 msgid "" "\n" "Hosts/Machines\n" @@ -3185,217 +3799,201 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " -msgstr "" - #: ipalib/plugins/host.py:101 msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/host.py:129 +#: ipalib/plugins/host.py:142 +#, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:217 +msgid "hosts" +msgstr "" + +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/host.py:231 +#: ipalib/plugins/host.py:257 msgid "Host name" msgstr "主机名" -#: ipalib/plugins/host.py:238 +#: ipalib/plugins/host.py:264 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:242 +#: ipalib/plugins/host.py:268 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:243 +#: ipalib/plugins/host.py:269 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "主机地点(如\"Baltimore, MD\")" -#: ipalib/plugins/host.py:248 +#: ipalib/plugins/host.py:274 msgid "Host location (e.g. \"Lab 2\")" msgstr "主机位置(如\"Lab 2\")" -#: ipalib/plugins/host.py:252 +#: ipalib/plugins/host.py:278 msgid "Platform" msgstr "平台" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:279 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "主机硬件平台 (e.g. \"Lenovo T61\")" -#: ipalib/plugins/host.py:257 +#: ipalib/plugins/host.py:283 msgid "Operating system" msgstr "操作系统" -#: ipalib/plugins/host.py:258 +#: ipalib/plugins/host.py:284 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "主机操作系统及版本(e.g. \"Fedora 9\")" -#: ipalib/plugins/host.py:262 +#: ipalib/plugins/host.py:288 msgid "User password" msgstr "用户密码" -#: ipalib/plugins/host.py:263 +#: ipalib/plugins/host.py:289 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:266 +#: ipalib/plugins/host.py:292 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:271 +#: ipalib/plugins/host.py:297 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 msgid "Base-64 encoded server certificate" msgstr "Base-64 编码格式的服务器证书" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:369 +#, python-format msgid "Added host \"%(value)s\"" msgstr "新增主机 \"%(value)s\"" -#: ipalib/plugins/host.py:316 +#: ipalib/plugins/host.py:374 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:319 +#: ipalib/plugins/host.py:377 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:322 +#: ipalib/plugins/host.py:380 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 +#: ipalib/plugins/host.py:381 +msgid "IP Address" +msgstr "" + +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/host.py:413 +#: ipalib/plugins/host.py:481 +#, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:426 +#: ipalib/plugins/host.py:501 +#, python-format msgid "Deleted host \"%(value)s\"" msgstr "已删除主机 \"%(value)s\"" -#: ipalib/plugins/host.py:431 +#: ipalib/plugins/host.py:506 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:542 +#: ipalib/plugins/host.py:615 +#, python-format msgid "Modified host \"%(value)s\"" msgstr "已修改主机 \"%(value)s\"" -#: ipalib/plugins/host.py:549 +#: ipalib/plugins/host.py:622 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." +msgstr "" + +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/host.py:623 +#: ipalib/plugins/host.py:712 +#, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:688 +#: ipalib/plugins/host.py:789 +#, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/hostgroup.py:25 msgid "" "\n" "Groups of hosts.\n" @@ -3427,3699 +4025,3225 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/hostgroup.py:55 -msgid "" -"\n" -" Hostgroup object.\n" -" " +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" +msgstr "" + +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/hostgroup.py:78 +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" +msgstr "" + +#: ipalib/plugins/hostgroup.py:80 msgid "Host-group" msgstr "主机组" -#: ipalib/plugins/hostgroup.py:79 +#: ipalib/plugins/hostgroup.py:81 msgid "Name of host-group" msgstr "主机组名称" -#: ipalib/plugins/hostgroup.py:86 +#: ipalib/plugins/hostgroup.py:88 msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:98 +#: ipalib/plugins/hostgroup.py:116 +#, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:104 +#: ipalib/plugins/hostgroup.py:131 +#, python-format msgid "" -"\n" -" Delete a hostgroup.\n" -" " +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" + +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:108 +#: ipalib/plugins/hostgroup.py:155 +#, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:118 +#: ipalib/plugins/hostgroup.py:163 +#, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/hostgroup.py:128 +#: ipalib/plugins/hostgroup.py:177 +#, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:44 +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 msgid "Name of object to export" msgstr "" -#: ipalib/plugins/internal.py:47 +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 msgid "Name of method to export" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" -msgstr "" - -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" -msgstr "" - -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" -msgstr "" - -#: ipalib/plugins/internal.py:99 -msgid "Attribute" -msgstr "" - -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" -msgstr "" - -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" -msgstr "" - -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" -msgstr "" - -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" -msgstr "" - -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" -msgstr "" - -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" -msgstr "" - -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" -msgstr "" - -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" -msgstr "" - -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" -msgstr "" - -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" -msgstr "" - -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" -msgstr "" - -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/internal.py:126 +#: ipalib/plugins/internal.py:147 msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." -msgstr "" - -#: ipalib/plugins/internal.py:128 -msgid "Issued To" -msgstr "" - -#: ipalib/plugins/internal.py:129 -msgid "Common Name" -msgstr "" - -#: ipalib/plugins/internal.py:130 -msgid "Organization" -msgstr "" - -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" -msgstr "" - -#: ipalib/plugins/internal.py:133 -msgid "Issued By" -msgstr "" - -#: ipalib/plugins/internal.py:134 -msgid "Validity" -msgstr "" - -#: ipalib/plugins/internal.py:135 -msgid "Issued On" -msgstr "" - -#: ipalib/plugins/internal.py:136 -msgid "Expires On" -msgstr "" - -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" -msgstr "" - -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" - -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" -msgstr "" - -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "数据" - -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:169 -msgid "Add Group" +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:170 -msgid "Group Settings" -msgstr "" - -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" #: ipalib/plugins/internal.py:183 -msgid "Accessing" +msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" #: ipalib/plugins/internal.py:186 -msgid "Via Service" +msgid "Find" msgstr "" #: ipalib/plugins/internal.py:187 -msgid "Any Service" +msgid "Get" msgstr "" #: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +msgid "Issue" msgstr "" #: ipalib/plugins/internal.py:189 -msgid "From" +msgid "OK" +msgstr "" + +#: ipalib/plugins/internal.py:190 +msgid "Delete" +msgstr "" + +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" #: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +msgid "Restore" +msgstr "" + +#: ipalib/plugins/internal.py:193 +msgid "Retry" +msgstr "" + +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" #: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +msgid "Update" +msgstr "" + +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" #: ipalib/plugins/internal.py:199 -msgid "Add Host" +msgid "Collapse All" msgstr "" #: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" #: ipalib/plugins/internal.py:202 -msgid "Host Settings" +msgid "Identity Settings" msgstr "" #: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +msgid "${entity} ${primary_key} Settings" msgstr "" #: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "" - -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" #: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" #: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +msgid "Operations Error" msgstr "" #: ipalib/plugins/internal.py:212 -msgid "Set OTP" +msgid "Confirmation" msgstr "" #: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" #: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" +msgstr "" + +#: ipalib/plugins/internal.py:217 +msgid "Redirection" +msgstr "" + +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" #: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +msgid "Remove ${entity}" msgstr "" #: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/internal.py:239 +msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" #: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +msgid "Automount Location Settings" msgstr "" #: ipalib/plugins/internal.py:256 -msgid "Add Service" +msgid "Map Type" msgstr "" #: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +msgid "Direct" msgstr "" #: ipalib/plugins/internal.py:258 -msgid "Service Settings" +msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" #: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +msgid "CA Compromise" +msgstr "" + +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" +msgstr "" + +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" +msgstr "" + +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" #: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +msgid "Enter the Base64-encoded CSR below" +msgstr "" + +#: ipalib/plugins/internal.py:268 +msgid "Expires On" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +msgid "Issued By" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Issued On" +msgstr "" + +#: ipalib/plugins/internal.py:273 +msgid "Issued To" +msgstr "" + +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" #: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" #: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +msgid "Organization" +msgstr "" + +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" +msgstr "" + +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" +msgstr "" + +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" +msgstr "" + +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" +msgstr "" + +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:285 +msgid "" +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." +msgstr "" + +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" #: ipalib/plugins/internal.py:287 -msgid "Access this host" +msgid "" +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." +msgstr "" + +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" #: ipalib/plugins/internal.py:290 -msgid "Run Commands" +msgid "SHA1 Fingerprint" msgstr "" #: ipalib/plugins/internal.py:291 -msgid "Any Command" +msgid "Superseded" msgstr "" #: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +msgid "Unspecified" msgstr "" #: ipalib/plugins/internal.py:293 -msgid "As Whom" +msgid "Valid Certificate Present" msgstr "" #: ipalib/plugins/internal.py:294 -msgid "Any Group" +msgid "Validity" msgstr "" #: ipalib/plugins/internal.py:295 -msgid "Specified Groups" -msgstr "" - -#: ipalib/plugins/internal.py:297 -msgid "External" +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "" +#: ipalib/plugins/internal.py:305 +msgid "Data" +msgstr "数据" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" #: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +msgid "Standard Record Types" msgstr "" #: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +msgid "Records for DNS Zone" msgstr "" #: ipalib/plugins/internal.py:311 -msgid "Reset Password" -msgstr "" - -#: ipalib/plugins/internal.py:312 -msgid "New Password" -msgstr "" - -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +msgid "Record Type" msgstr "" #: ipalib/plugins/internal.py:314 -msgid "Password change complete" +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" #: ipalib/plugins/internal.py:319 -msgid "Add" +msgid "Certificates" msgstr "" #: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +msgid "Consume" msgstr "" #: ipalib/plugins/internal.py:321 -msgid "Add and Edit" -msgstr "" - -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +msgid "Consume Entitlement" msgstr "" #: ipalib/plugins/internal.py:323 -msgid "Add Many" +msgid "Download" msgstr "" #: ipalib/plugins/internal.py:324 -msgid "Back to List" -msgstr "" - -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +msgid "Download Certificate" msgstr "" #: ipalib/plugins/internal.py:326 -msgid "Close" +msgid "Import" msgstr "" #: ipalib/plugins/internal.py:327 -msgid "Enroll" +msgid "Import Certificate" msgstr "" #: ipalib/plugins/internal.py:328 -msgid "Find" +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" #: ipalib/plugins/internal.py:329 -msgid "Get" +msgid "Loading..." msgstr "" #: ipalib/plugins/internal.py:330 -msgid "Issue" -msgstr "" - -#: ipalib/plugins/internal.py:331 -msgid "OK" +msgid "No Certificate." msgstr "" #: ipalib/plugins/internal.py:332 -msgid "Reset" -msgstr "" - -#: ipalib/plugins/internal.py:333 -msgid "Delete" -msgstr "" - -#: ipalib/plugins/internal.py:334 -msgid "Restore" -msgstr "" - -#: ipalib/plugins/internal.py:335 -msgid "Retry" +msgid "Register" msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" #: ipalib/plugins/internal.py:338 -msgid "View" +msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" #: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" #: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" #: ipalib/plugins/internal.py:362 -msgid "Quick Links" +msgid "Access Denied" msgstr "" #: ipalib/plugins/internal.py:363 -msgid "Select All" +msgid "Access Granted" msgstr "" #: ipalib/plugins/internal.py:364 -msgid "Unselect All" +msgid "Include Disabled" msgstr "" #: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +msgid "Include Enabled" msgstr "" #: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." -msgstr "" - -#: ipalib/plugins/internal.py:370 -msgid "General" -msgstr "" - -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" -msgstr "" - -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" -msgstr "" - -#: ipalib/plugins/internal.py:377 -msgid "Policy" -msgstr "" - -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/kerberos.py:79 -msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" -msgstr "用户名" - -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:410 +msgid "Target" msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" msgstr "" - -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "用户组" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" -msgstr "LDAP URI" +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:446 +msgid "Any Command" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:447 +msgid "Any Group" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" -msgstr "用户容器" +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:452 +msgid "External" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" -msgstr "组容器" +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:456 +msgid "Options" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:457 +msgid "As Whom" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:466 +msgid "Account Status" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:467 +msgid "Activate" msgstr "" -#: ipalib/plugins/migration.py:320 +#: ipalib/plugins/internal.py:468 msgid "" -"Continuous operation mode. Errors are reported but the process continues" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" + +#: ipalib/plugins/internal.py:494 msgid "" -"retrieve and print all attributes from the server. Affects command output." +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:498 +msgid "Audit" msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:499 +msgid "Automount" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "DNS" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:504 +msgid "Policy" msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" -msgstr "网络组" +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" -msgstr "网络组名称" +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" -msgstr "网络组描述" +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" -msgstr "NIS域名" +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:512 +msgid "Prev" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:513 +msgid "undo" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:514 +msgid "undo all" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:520 +msgid "Required field" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "" -#: ipalib/plugins/netgroup.py:213 +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Display information about a netgroup.\n" -" " +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/permission.py:19 +#: ipalib/plugins/migration.py:34 msgid "" "\n" -"Permissions\n" +"Migration to IPA\n" "\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" +"Migrate users and groups from an LDAP server to IPA.\n" "\n" -"A permission may not contain other permissions.\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" "\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +"The default user container is ou=People.\n" "\n" -"A permission is made up of a number of different parts:\n" +"The default group container is ou=Groups.\n" "\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" +"Users and groups that already exist on the IPA server are skipped.\n" "\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" "\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" "\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" +" ipa config-mod --enable-migration=TRUE\n" "\n" "EXAMPLES:\n" "\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" "\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/permission.py:89 +#: ipalib/plugins/migration.py:87 msgid "" -"\n" -" Permission object.\n" -" " +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" msgstr "" -#: ipalib/plugins/permission.py:132 +#: ipalib/plugins/migration.py:255 msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "LDAP URI" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/migration.py:329 +msgid "bind password" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "用户容器" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "组容器" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/migration.py:356 +msgid "User object class" msgstr "" -#: ipalib/plugins/permission.py:256 +#: ipalib/plugins/migration.py:357 msgid "" -"\n" -" Modify a permission.\n" -" " +"Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/migration.py:364 +msgid "Group object class" msgstr "" -#: ipalib/plugins/permission.py:352 +#: ipalib/plugins/migration.py:365 msgid "" -"\n" -" Search for permissions.\n" -" " +"Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" - -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/permission.py:428 +#: ipalib/plugins/migration.py:373 msgid "" -"\n" -" Add members to a permission.\n" -" " +"Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/ping.py:19 +#: ipalib/plugins/migration.py:381 msgid "" -"\n" -"Ping the remote IPA server\n" +"Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/ping.py:37 +#: ipalib/plugins/migration.py:389 msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +"Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/migration.py:397 msgid "" -"\n" -" PKINIT Options\n" -" " +"Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/migration.py:405 msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" msgstr "" -#: ipalib/plugins/privilege.py:19 +#: ipalib/plugins/migration.py:411 msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/migration.py:417 +msgid "Continue" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/migration.py:440 msgid "" -"\n" -" Delete a privilege.\n" -" " +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/privilege.py:105 +#: ipalib/plugins/migration.py:448 msgid "" -"\n" -" Modify a privilege.\n" -" " +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" msgstr "" -#: ipalib/plugins/privilege.py:115 +#: ipalib/plugins/misc.py:25 msgid "" "\n" -" Search for privileges.\n" -" " +"Misc plug-ins\n" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" - -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" msgstr "" -#: ipalib/plugins/privilege.py:144 +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 msgid "" -"\n" -" Remove members from a privilege\n" -" " +"retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" +"Netgroups\n" "\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:72 -msgid "" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" "\n" -" Class of Service object used for linking policies with groups\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" -msgstr "" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" +msgstr "网络组" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" -msgstr "" +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" +msgstr "网络组名称" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" -msgstr "" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" +msgstr "网络组描述" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" -msgstr "组" +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" +msgstr "NIS域名" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/netgroup.py:162 +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" -msgstr "最小长度" +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" -msgstr "优先级" - -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Add a new group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:361 -msgid "" +"Set a user's password\n" "\n" -" Delete a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:380 -msgid "" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" "\n" -" Modify a group password policy.\n" -" " -msgstr "" - -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" -msgstr "" - -#: ipalib/plugins/pwpolicy.py:423 -msgid "" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" "\n" -" Display information about password policy.\n" -" " +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" -msgstr "用户" - -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:20 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Roles\n" +"Permissions\n" "\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"Privileges are assigned to Roles.\n" +"A permission may not contain other permissions.\n" "\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Roles can not contain other roles.\n" +"A permission is made up of a number of different parts:\n" "\n" -"EXAMPLES:\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" "\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" "\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" "\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" "\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" "\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/permission.py:94 +msgid "permission" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/permission.py:95 +msgid "permissions" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" -msgstr "该角色组的描述" +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "" -#: ipalib/plugins/role.py:101 +#: ipalib/plugins/permission.py:120 msgid "" -"\n" -" Add a new role.\n" -" " +"Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/permission.py:141 +msgid "Member of group" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Ping the remote IPA server\n" msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/pkinit.py:25 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Kerberos pkinit options\n" "\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +"For more information on anonymous pkinit see:\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +msgstr "" + +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" msgstr "" -#: ipalib/plugins/selfservice.py:56 +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." +msgstr "" + +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" +"Privileges\n" +"\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" Return the result if it is a self-service ACI.\n" -" " +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" +"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:181 -msgid "" -"\n" -" Search for a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" -#: ipalib/plugins/selfservice.py:207 -msgid "" -"\n" -" Display information about a self-service permission.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" +msgstr "" + +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"Password policy\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -msgstr "" - -#: ipalib/plugins/service.py:162 -msgid "" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" "\n" -" For now just verify that it is properly base64-encoded.\n" -" " -msgstr "" - -#: ipalib/plugins/service.py:175 -msgid "" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" "\n" -" Set individual attributes from some values from a certificate.\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" "\n" -" entry_attrs is a dict of an entry\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" -" returns nothing\n" -" " +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" +msgstr "组" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmd.py:19 -msgid "" -"\n" -"Sudo Commands\n" -"\n" -"Commands used as building blocks for sudo\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" -"\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" -"\n" +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" +msgstr "最小长度" + +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "优先级" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" +msgstr "用户" + +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Groups of Sudo commands\n" +"Roles\n" +"\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" +"\n" +"Privileges are assigned to Roles.\n" +"\n" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -"Manage groups of Sudo commands.\n" +"Roles can not contain other roles.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" "\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" "\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" "\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" +msgstr "该角色组的描述" + +#: ipalib/plugins/role.py:101 +msgid "Add a new role." +msgstr "" + +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" msgstr[0] "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." +msgstr "" + +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." +msgstr "" + +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" +msgstr "" + +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." +msgstr "" + +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Self-service Permissions\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" "\n" -" Sudo Rule management\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" -msgstr "" - -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" -msgstr "" +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/service.py:35 msgid "" "\n" -" Create new Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" -msgstr "" - -#: ipalib/plugins/sudorule.py:189 -msgid "" +"Services\n" "\n" -" Delete Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:197 -msgid "" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" Search for Sudo Rule.\n" -" " msgstr "" -#: ipalib/plugins/sudorule.py:213 -msgid "" -"\n" -" Display Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/sudorule.py:221 -msgid "" -"\n" -" Enable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/sudocmd.py:29 msgid "" "\n" -"Users\n" -"\n" -"Manage user entries. All users are POSIX users.\n" -"\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" -"\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +"Sudo Commands\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Commands used as building blocks for sudo\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" -"\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" -"\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" -"\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" msgstr "" -#: ipalib/plugins/user.py:79 -msgid "" -"\n" -" User object.\n" -" " +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" -msgstr "用户登录名" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" +msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" -msgstr "名" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" +msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" -msgstr "姓" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" +msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" -msgstr "GECOS字段" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." +msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" -msgstr "登录shell" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" +msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" -msgstr "邮件地址" +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." +msgstr "" + +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." +msgstr "" + +#: ipalib/plugins/sudocmdgroup.py:25 +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" -msgstr "UID" - -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" -msgstr "街道地址" - -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" -msgstr "" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:295 -msgid "" -"\n" -" Add a new user.\n" -" " +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" -msgstr "新增用户\"%(value)s\"" - -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" -msgstr "已删除用户\"%(value)s\"" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" +msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" -msgstr "已修改用户\"%(value)s\"" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" +msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" +msgstr "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/user.py:507 -msgid "" -"\n" -" Enable a user account.\n" -" " +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "再次输入 %(label)s进行校验: " +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" +msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" -msgstr "密码不匹配!" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." -msgstr "已取消" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" +msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:318 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" -msgstr "发生了一个内部错误" +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." +msgstr "" -#: ipalib/errors.py:356 +#: ipalib/plugins/sudorule.py:226 #, python-format -msgid "an internal error has occurred on server at %(server)r" -msgstr "服务器%(server)r上发生了一个内部错误" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" -msgstr "未知的命令%(name)r" +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "error on server %(server)r: %(error)s" +msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" -msgstr "无法连接到%(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." +msgstr "" -#: ipalib/errors.py:423 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "无效的JSON-RPC请求: %(error)s" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." msgstr "" -#: ipalib/errors.py:465 +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:498 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:641 -#, python-format -msgid "command %(name)r takes no arguments" -msgstr "命令 %(name)r不需要参数" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:661 -#, 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] "" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:691 -#, python-format -msgid "overlapping arguments and options: %(names)r" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:707 -#, python-format -msgid "%(name)r is required" -msgstr "需要%(name)r" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." +msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 -#, python-format -msgid "invalid %(name)r: %(error)s" -msgstr "%(name)r无效: %(error)s" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." +msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:655 #, python-format -msgid "api has no such namespace: %(name)r" -msgstr "API没有这个名字空间: %(name)r" - -#: ipalib/errors.py:764 -msgid "Passwords do not match" -msgstr "密码不匹配" - -#: ipalib/errors.py:773 -msgid "Command not implemented" -msgstr "命令没有实现" +msgid "Added option \"%s\" to Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "%(reason)s" -msgstr "%(reason)s" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" +msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" -msgstr "条目已经存在" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" +msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" -msgstr "该命令需要root访问权限" +#: ipalib/plugins/user.py:177 +msgid "User login" +msgstr "用户登录名" -#: ipalib/errors.py:906 -msgid "This is already a posix group" -msgstr "这已经是一个posix组" +#: ipalib/plugins/user.py:184 +msgid "First name" +msgstr "名" -#: ipalib/errors.py:922 -#, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" -msgstr "" +#: ipalib/plugins/user.py:188 +msgid "Last name" +msgstr "姓" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" -msgstr "一个组不能是自己的成员" +#: ipalib/plugins/user.py:212 +msgid "GECOS field" +msgstr "GECOS字段" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:218 +msgid "Login shell" +msgstr "登录shell" + +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Base64解码失败: %(reason)s" +#: ipalib/plugins/user.py:231 +msgid "Email address" +msgstr "邮件地址" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" -msgstr "一个组不能是自己的成员" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" +msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" -msgstr "默认的用户组不成被删除" +#: ipalib/plugins/user.py:243 +msgid "UID" +msgstr "UID" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." -msgstr "" +#: ipalib/plugins/user.py:257 +msgid "Street address" +msgstr "街道地址" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" -msgstr "修改冲突" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" +msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" -msgstr "%(info)s" +#: ipalib/plugins/user.py:289 +msgid "Job Title" +msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/errors.py:1366 +#: ipalib/plugins/user.py:340 #, python-format -msgid "Bad search filter %(info)s" +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/errors.py:1407 +#: ipalib/plugins/user.py:361 #, python-format -msgid "Certificate format error: %(error)s" -msgstr "" +msgid "Added user \"%(value)s\"" +msgstr "新增用户\"%(value)s\"" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" -msgstr "结果被截断,请尝试更明确的搜索" - -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "已删除用户\"%(value)s\"" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" -msgstr "" +#: ipalib/plugins/user.py:488 +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "已修改用户\"%(value)s\"" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" -msgstr "不正确的类型" - -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" -msgstr "只允许一个值" - -#: ipalib/parameters.py:901 -msgid "must be True or False" -msgstr "必须是True或False" - -#: ipalib/parameters.py:1002 -msgid "must be an integer" -msgstr "必须是一个整数" - -#: ipalib/parameters.py:1054 -#, python-format -msgid "must be at least %(minvalue)d" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1064 +#: ipalib/plugins/user.py:539 #, python-format -msgid "can be at most %(maxvalue)d" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" + +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" -msgstr "必须是一个十进制数" +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." +msgstr "" -#: ipalib/parameters.py:1097 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must be at least %(minvalue)f" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1107 -#, python-format -msgid "can be at most %(maxvalue)f" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must match pattern \"%(pattern)s\"" +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1192 -msgid "must be binary data" -msgstr "必须是二进制数据" - -#: ipalib/parameters.py:1208 -#, python-format -msgid "must be at least %(minlength)d bytes" +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" -msgstr "必须是Unicode文本" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7140,6 +7264,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7164,283 +7293,297 @@ msgstr "无法得到下一个序列号" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7460,248 +7603,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7792,5 +7923,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - diff --git a/install/po/zh_TW.po b/install/po/zh_TW.po index 8586c9bff..55ab065d0 100644 --- a/install/po/zh_TW.po +++ b/install/po/zh_TW.po @@ -2,13 +2,14 @@ # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Automatically generated, 2010. msgid "" msgstr "" "Project-Id-Version: FreeIPA\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" -"PO-Revision-Date: 2011-07-27 00:01+0000\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" +"PO-Revision-Date: 2012-02-14 08:20+0000\n" "Last-Translator: jdennis \n" "Language-Team: Chinese (Taiwan) \n" "MIME-Version: 1.0\n" @@ -17,7108 +18,7231 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ipalib/plugins/__init__.py:20 -msgid "" -"\n" -"Sub-package containing all core plugins.\n" +#: ipalib/cli.py:583 +#, python-format +msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/plugins/aci.py:20 -msgid "" -"\n" -"Directory Server Access Control Instructions (ACIs)\n" -"\n" -"ACIs are used to allow or deny access to information. This module is\n" -"currently designed to allow, not deny, access.\n" -"\n" -"The aci commands are designed to grant permissions that allow updating\n" -"existing entries or adding or deleting new ones. The goal of the ACIs\n" -"that ship with IPA is to provide a set of low-level permissions that\n" -"grant access to special groups called taskgroups. These low-level\n" -"permissions can be combined into roles that grant broader access. These\n" -"roles are another type of group, roles.\n" -"\n" -"For example, if you have taskgroups that allow adding and modifying users you\n" -"could create a role, useradmin. You would assign users to the useradmin\n" -"role to allow them to do the operations defined by the taskgroups.\n" -"\n" -"You can create ACIs that delegate permission so users in group A can write\n" -"attributes on group B.\n" -"\n" -"The type option is a map that applies to all entries in the users, groups or\n" -"host location. It is primarily designed to be used when granting add\n" -"permissions (to write new entries).\n" -"\n" -"An ACI consists of three parts:\n" -"1. target\n" -"2. permissions\n" -"3. bind rules\n" -"\n" -"The target is a set of rules that define which LDAP objects are being\n" -"targeted. This can include a list of attributes, an area of that LDAP\n" -"tree or an LDAP filter.\n" -"\n" -"The targets include:\n" -"- attrs: list of attributes affected\n" -"- type: an object type (user, group, host, service, etc)\n" -"- memberof: members of a group\n" -"- targetgroup: grant access to modify a specific group. This is primarily\n" -" designed to enable users to add or remove members of a specific group.\n" -"- filter: A legal LDAP filter used to narrow the scope of the target.\n" -"- subtree: Used to apply a rule across an entire set of objects. For example,\n" -" to allow adding users you need to grant \"add\" permission to the subtree\n" -" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n" -" is a fail-safe for objects that may not be covered by the type option.\n" -"\n" -"The permissions define what the the ACI is allowed to do, and are one or\n" -"more of:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"The bind rule defines who this ACI grants permissions to. The LDAP server\n" -"allows this to be any valid LDAP entry but we encourage the use of\n" -"taskgroups so that the rights can be easily shared through roles.\n" -"\n" -"For a more thorough description of access controls see\n" -"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n" -"\n" -"EXAMPLES:\n" -"\n" -"NOTE: ACIs are now added via the permission plugin. These examples are to\n" -"demonstrate how the various options work but this is done via the permission\n" -"command-line now (see last example).\n" -"\n" -" Add an ACI so that the group \"secretaries\" can update the address on any user:\n" -" ipa group-add --desc=\"Office secretaries\" secretaries\n" -" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Show the new ACI:\n" -" ipa aci-show --prefix=none \"Secretaries write addresses\"\n" -"\n" -" Add an ACI that allows members of the \"addusers\" permission to add new users:\n" -" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n" -"\n" -" Add an ACI that allows members of the editors manage members of the admins group:\n" -" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n" -"\n" -" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n" -" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n" -"\n" -" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n" -"\n" -" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n" -" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n" -"\n" -"\n" -"The show command shows the raw 389-ds ACI.\n" -"\n" -"IMPORTANT: When modifying the target attributes of an existing ACI you\n" -"must include all existing attributes as well. When doing an aci-mod the\n" -"targetattr REPLACES the current attributes, it does not add to them.\n" -"\n" +#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768 +#, c-format +msgid "Passwords do not match!" msgstr "" -#: ipalib/plugins/aci.py:153 -msgid "A list of ACI values" +#: ipalib/cli.py:592 +msgid "Cancelled." msgstr "" -#: ipalib/plugins/aci.py:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " +#: ipalib/cli.py:753 +#, python-format +msgid "Purpose: %s" msgstr "" -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " +#: ipalib/cli.py:770 +msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " +#: ipalib/cli.py:772 +msgid "Built-in commands:" msgstr "" -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " +#: ipalib/cli.py:774 +msgid "Help subtopics:" msgstr "" -#: ipalib/plugins/aci.py:215 -msgid "type, filter, subtree and targetgroup are mutually exclusive" +#: ipalib/cli.py:777 +msgid "Help topics:" msgstr "" -#: ipalib/plugins/aci.py:218 -msgid "ACI prefix is required" +#: ipalib/cli.py:782 +msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/plugins/aci.py:221 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +#: ipalib/cli.py:816 +msgid "Topic commands:" msgstr "" -#: ipalib/plugins/aci.py:224 -msgid "filter and memberof are mutually exclusive" +#: ipalib/cli.py:827 +msgid "Command name" msgstr "" -#: ipalib/plugins/aci.py:230 -msgid "group, permission and self are mutually exclusive" +#: ipalib/cli.py:1130 +msgid "No file to read" msgstr "" -#: ipalib/plugins/aci.py:232 -msgid "One of group, permission or self is required" +#: ipalib/errors.py:303 +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:251 -msgid "Group '%s' does not exist" +#: ipalib/errors.py:321 +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:273 -msgid "empty filter" +#: ipalib/errors.py:337 +msgid "an internal error has occurred" msgstr "" -#: ipalib/plugins/aci.py:294 -msgid "Syntax Error: %(error)s" +#: ipalib/errors.py:359 +#, python-format +msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/plugins/aci.py:299 -msgid "" -"Convert an ACI into its equivalent keywords.\n" -"\n" -" This is used for the modify operation so we can merge the\n" -" incoming kw and existing ACI and pass the result to\n" -" _make_aci().\n" -" " +#: ipalib/errors.py:375 +#, python-format +msgid "unknown command %(name)r" msgstr "" -#: ipalib/plugins/aci.py:379 -msgid "ACI with name \"%s\" not found" +#: ipalib/errors.py:392 ipalib/errors.py:417 +#, python-format +msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:400 -msgid "ACI prefix" +#: ipalib/errors.py:408 +#, python-format +msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:401 -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" +#: ipalib/errors.py:426 +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:407 -msgid "" -"\n" -" ACI object.\n" -" " +#: ipalib/errors.py:442 +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:412 -msgid "ACIs" +#: ipalib/errors.py:468 +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/plugins/aci.py:417 -msgid "ACI name" +#: ipalib/errors.py:485 +msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/plugins/aci.py:422 -msgid "Permission" +#: ipalib/errors.py:501 +#, python-format +msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/plugins/aci.py:423 -msgid "Permission ACI grants access to" +#: ipalib/errors.py:517 +msgid "No credentials cache found" msgstr "" -#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130 -msgid "User group" +#: ipalib/errors.py:533 +msgid "Ticket expired" msgstr "" -#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131 -msgid "User group ACI grants access to" +#: ipalib/errors.py:549 +msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60 -#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107 -#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86 -msgid "Permissions" +#: ipalib/errors.py:565 +msgid "Bad format in credentials cache" msgstr "" -#: ipalib/plugins/aci.py:433 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/errors.py:581 +msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119 -#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/errors.py:600 +#, python-format +msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120 -#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +#: ipalib/errors.py:644 +#, python-format +msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164 -#: ipalib/plugins/permission.py:131 -msgid "Type" -msgstr "" +#: ipalib/errors.py:664 +#, 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] "" -#: ipalib/plugins/aci.py:445 -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +#: ipalib/errors.py:694 +#, python-format +msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/plugins/aci.py:450 -msgid "Member of" +#: ipalib/errors.py:710 +#, python-format +msgid "%(name)r is required" msgstr "" -#: ipalib/plugins/aci.py:451 -msgid "Member of a group" +#: ipalib/errors.py:726 ipalib/errors.py:742 +#, python-format +msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234 -#: ipalib/plugins/permission.py:144 -msgid "Filter" +#: ipalib/errors.py:758 +#, python-format +msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145 -msgid "Legal LDAP filter (e.g. ou=Engineering)" +#: ipalib/errors.py:767 +msgid "Passwords do not match" msgstr "" -#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150 -msgid "Subtree" +#: ipalib/errors.py:776 +msgid "Command not implemented" msgstr "" -#: ipalib/plugins/aci.py:461 -msgid "Subtree to apply ACI to" +#: ipalib/errors.py:785 +msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156 -msgid "Target group" +#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147 +#: ipalib/errors.py:1462 ipalib/errors.py:1479 +#, python-format +msgid "%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:466 -msgid "Group to apply ACI to" +#: ipalib/errors.py:829 +msgid "This entry already exists" msgstr "" -#: ipalib/plugins/aci.py:470 -msgid "Target your own entry (self)" +#: ipalib/errors.py:845 +msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/plugins/aci.py:471 -msgid "Apply ACI to your own entry (self)" +#: ipalib/errors.py:861 +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -#: ipalib/plugins/aci.py:478 +#: ipalib/errors.py:877 msgid "" -"\n" -" Create new ACI.\n" -" " +"The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/plugins/aci.py:482 -msgid "Created ACI \"%(value)s\"" +#: ipalib/errors.py:893 +msgid "This command requires root access" msgstr "" -#: ipalib/plugins/aci.py:487 -msgid "Test the ACI syntax but don't write anything" +#: ipalib/errors.py:909 +msgid "This is already a posix group" msgstr "" -#: ipalib/plugins/aci.py:493 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " +#: ipalib/errors.py:925 +#, python-format +msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " +#: ipalib/errors.py:941 +msgid "This entry is already enabled" msgstr "" -#: ipalib/plugins/aci.py:538 -msgid "Deleted ACI \"%(value)s\"" +#: ipalib/errors.py:957 +msgid "This entry is already disabled" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " +#: ipalib/errors.py:973 +msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\n" -" " +#: ipalib/errors.py:989 +msgid "This entry is not a member" msgstr "" -#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830 -#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255 -#: ipalib/plugins/selfservice.py:212 -msgid "ACI" +#: ipalib/errors.py:1005 +msgid "A group may not be a member of itself" msgstr "" -#: ipalib/plugins/aci.py:588 -msgid "Modified ACI \"%(value)s\"" +#: ipalib/errors.py:1021 +msgid "This entry is already a member" msgstr "" -#: ipalib/plugins/aci.py:633 -msgid "" -"\n" -" Search for ACIs.\n" -"\n" -" Returns a list of ACIs\n" -"\n" -" EXAMPLES:\n" -"\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" -"\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\n" -"\n" -" Note that the find command only looks for the given text in the set of\n" -" ACIs, it does not evaluate the ACIs to see if something would apply.\n" -" For example, searching on memberof=ipausers will find all ACIs that\n" -" have ipausers as a memberof. There may be other ACIs that apply to\n" -" members of that group indirectly.\n" -" " +#: ipalib/errors.py:1037 +#, python-format +msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/plugins/aci.py:653 -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" +#: ipalib/errors.py:1069 +msgid "A group may not be added as a member of itself" +msgstr "" -#: ipalib/plugins/aci.py:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " +#: ipalib/errors.py:1085 +msgid "The default users group cannot be removed" +msgstr "" + +#: ipalib/errors.py:1101 +msgid "Host does not have corresponding DNS A record" +msgstr "" + +#: ipalib/errors.py:1116 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ipalib/errors.py:1131 +msgid "A managed group cannot have a password policy." +msgstr "" + +#: ipalib/errors.py:1163 +#, python-format +msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/plugins/aci.py:837 +#: ipalib/errors.py:1179 +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" + +#: ipalib/errors.py:1195 +#, python-format msgid "" -"\n" -" Execute the aci-show operation.\n" -"\n" -" Returns the entry\n" -"\n" -" :param uid: The login name of the user to retrieve.\n" -" :param kw: unused\n" -" " +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" + +#: ipalib/errors.py:1213 +#, python-format +msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/plugins/aci.py:865 +#: ipalib/errors.py:1230 +#, python-format msgid "" -"\n" -" Rename an ACI.\n" -" " +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/plugins/aci.py:878 -msgid "New ACI name" +#: ipalib/errors.py:1254 +#, python-format +msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/plugins/aci.py:882 -msgid "Renamed ACI to \"%(value)s\"" +#: ipalib/errors.py:1278 +msgid "change collided with another change" msgstr "" -#: ipalib/plugins/automount.py:20 -msgid "" -"\n" -"Automount\n" -"\n" -"Stores automount(8) configuration for autofs(8) in IPA.\n" -"\n" -"The base of an automount configuration is the configuration file auto.master.\n" -"This is also the base location in IPA. Multiple auto.master configurations\n" -"can be stored in separate locations. A location is implementation-specific\n" -"with the default being a location named 'default'. For example, you can have\n" -"locations by geographic region, by floor, by type, etc.\n" -"\n" -"Automount has three basic object types: locations, maps and keys.\n" -"\n" -"A location defines a set of maps anchored in auto.master. This allows you\n" -"to store multiple automount configurations. A location in itself isn't\n" -"very interesting, it is just a point to start a new automount map.\n" -"\n" -"A map is roughly equivalent to a discrete automount file and provides\n" -"storage for keys.\n" -"\n" -"A key is a mount point associated with a map.\n" -"\n" -"When a new location is created, two maps are automatically created for\n" -"it: auto.master and auto.direct. auto.master is the root map for all\n" -"automount maps for the location. auto.direct is the default map for\n" -"direct mounts and is mounted on /-.\n" -"\n" -"EXAMPLES:\n" -"\n" -"Locations:\n" -"\n" -" Create a named location, \"Baltimore\":\n" -" ipa automountlocation-add baltimore\n" -"\n" -" Display the new location:\n" -" ipa automountlocation-show baltimore\n" -"\n" -" Find available locations:\n" -" ipa automountlocation-find\n" -"\n" -" Remove a named automount location:\n" -" ipa automountlocation-del baltimore\n" -"\n" -" Show what the automount maps would look like if they were in the filesystem:\n" -" ipa automountlocation-tofiles baltimore\n" -"\n" -" Import an existing configuration into a location:\n" -" ipa automountlocation-import baltimore /etc/auto.master\n" -"\n" -" The import will fail if any duplicate entries are found. For\n" -" continuous operation where errors are ignored, use the --continue\n" -" option.\n" -"\n" -"Maps:\n" -"\n" -" Create a new map, \"auto.share\":\n" -" ipa automountmap-add baltimore auto.share\n" -"\n" -" Display the new map:\n" -" ipa automountmap-show baltimore auto.share\n" -"\n" -" Find maps in the location baltimore:\n" -" ipa automountmap-find baltimore\n" -"\n" -" Remove the auto.share map:\n" -" ipa automountmap-del baltimore auto.share\n" -"\n" -"Keys:\n" -"\n" -" Create a new key for the auto.share map in location baltimore. This ties\n" -" the map we previously created to auto.master:\n" -" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" -"\n" -" Create a new key for our auto.share map, an NFS mount for man pages:\n" -" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" -"\n" -" Find all keys for the auto.share map:\n" -" ipa automountkey-find baltimore auto.share\n" -"\n" -" Find all direct automount keys:\n" -" ipa automountkey-find baltimore --key=/-\n" -"\n" -" Remove the man key from the auto.share map:\n" -" ipa automountkey-del baltimore auto.share --key=man\n" +#: ipalib/errors.py:1294 +msgid "no modifications to be performed" msgstr "" -#: ipalib/plugins/automount.py:182 -msgid "" -"\n" -" Location container for automount maps.\n" -" " +#: ipalib/errors.py:1310 +#, python-format +msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/plugins/automount.py:190 -msgid "Automount Locations" +#: ipalib/errors.py:1326 +msgid "limits exceeded for this query" msgstr "" -#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247 -msgid "Location" +#: ipalib/errors.py:1341 +#, python-format +msgid "%(info)s" msgstr "" -#: ipalib/plugins/automount.py:197 -msgid "Automount location name." +#: ipalib/errors.py:1356 +msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/plugins/automount.py:206 -msgid "" -"\n" -" Create a new automount location.\n" -" " +#: ipalib/errors.py:1372 +#, python-format +msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/plugins/automount.py:221 -msgid "" -"\n" -" Delete an automount location.\n" -" " +#: ipalib/errors.py:1388 +#, python-format +msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/plugins/automount.py:229 -msgid "" -"\n" -" Display an automount location.\n" -" " +#: ipalib/errors.py:1404 +#, python-format +msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/plugins/automount.py:237 -msgid "" -"\n" -" Search for an automount location.\n" -" " +#: ipalib/errors.py:1429 +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:245 -msgid "" -"\n" -" Generate automount files for a specific location.\n" -" " +#: ipalib/errors.py:1445 +#, python-format +msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/plugins/automount.py:308 -msgid "" -"\n" -" Import automount files for a specific location.\n" -" " +#: ipalib/errors.py:1496 +msgid "Already registered" msgstr "" -#: ipalib/plugins/automount.py:314 -msgid "Master file" +#: ipalib/errors.py:1512 +msgid "Not registered yet" msgstr "" -#: ipalib/plugins/automount.py:315 -msgid "Automount master file." +#: ipalib/frontend.py:408 +msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/plugins/automount.py:322 +#: ipalib/frontend.py:821 msgid "" -"Continuous operation mode. Errors are reported but the process continues." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/plugins/automount.py:334 -msgid "File %(file)s not found" +#: ipalib/frontend.py:827 +msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/plugins/automount.py:341 -msgid "" -"\n" -" The basic idea is to read the master file and create all the maps\n" -" we need, then read each map file and add all the keys for the map.\n" -" " +#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/plugins/automount.py:492 -msgid "" -"\n" -" Automount map object.\n" -" " +#: ipalib/frontend.py:967 +msgid "Forward to server instead of running locally" msgstr "" -#: ipalib/plugins/automount.py:505 -msgid "Map" +#: ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" msgstr "" -#: ipalib/plugins/automount.py:506 -msgid "Automount map name." +#: ipalib/output.py:100 +msgid "A list of LDAP entries" msgstr "" -#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114 -#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73 -#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237 -#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109 -#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92 -#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76 -#: ipalib/plugins/sudorule.py:78 -msgid "Description" +#: ipalib/output.py:111 +msgid "All commands should at least have a result" msgstr "" -#: ipalib/plugins/automount.py:515 -msgid "Automount Maps" +#: ipalib/parameters.py:358 +msgid "incorrect type" msgstr "" -#: ipalib/plugins/automount.py:521 -msgid "" -"\n" -" Create a new automount map.\n" -" " +#: ipalib/parameters.py:361 +msgid "Only one value is allowed" msgstr "" -#: ipalib/plugins/automount.py:529 -msgid "" -"\n" -" Delete an automount map.\n" -" " +#: ipalib/parameters.py:1023 +msgid "must be True or False" msgstr "" -#: ipalib/plugins/automount.py:548 -msgid "" -"\n" -" Modify an automount map.\n" -" " +#: ipalib/parameters.py:1124 +msgid "must be an integer" msgstr "" -#: ipalib/plugins/automount.py:556 -msgid "" -"\n" -" Search for an automount map.\n" -" " +#: ipalib/parameters.py:1176 +#, python-format +msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/plugins/automount.py:564 -msgid "" -"\n" -" Display an automount map.\n" -" " +#: ipalib/parameters.py:1186 +#, python-format +msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/plugins/automount.py:572 -msgid "" -"\n" -" Automount key object.\n" -" " +#: ipalib/parameters.py:1227 +msgid "must be a decimal number" msgstr "" -#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778 -#: ipalib/plugins/automount.py:850 -msgid "Key" +#: ipalib/parameters.py:1250 +#, python-format +msgid "must be at least %(minvalue)f" msgstr "" -#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779 -#: ipalib/plugins/automount.py:851 -msgid "Automount key name." +#: ipalib/parameters.py:1260 +#, python-format +msgid "can be at most %(maxvalue)f" msgstr "" -#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783 -#: ipalib/plugins/automount.py:855 -msgid "Mount information" +#: ipalib/parameters.py:1327 +#, python-format +msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/plugins/automount.py:597 -msgid "description" +#: ipalib/parameters.py:1345 +msgid "must be binary data" msgstr "" -#: ipalib/plugins/automount.py:606 -msgid "Automount Keys" +#: ipalib/parameters.py:1361 +#, python-format +msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:607 -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +#: ipalib/parameters.py:1371 +#, python-format +msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/plugins/automount.py:608 -msgid "key named %(key)s already exists" +#: ipalib/parameters.py:1381 +#, python-format +msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/plugins/automount.py:609 -msgid "The automount key %(key)s with info %(info)s does not exist" +#: ipalib/parameters.py:1403 +msgid "must be Unicode text" msgstr "" -#: ipalib/plugins/automount.py:659 -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +#: ipalib/parameters.py:1436 +msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/plugins/automount.py:717 -msgid "" -"\n" -" Create a new automount key.\n" -" " +#: ipalib/parameters.py:1444 +#, python-format +msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:742 -msgid "" -"\n" -" Create a new indirect mount point.\n" -" " +#: ipalib/parameters.py:1454 +#, python-format +msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/plugins/automount.py:748 -msgid "Mount point" +#: ipalib/parameters.py:1464 +#, python-format +msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/plugins/automount.py:752 -msgid "Parent map" +#: ipalib/parameters.py:1482 +#, python-format +msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/plugins/automount.py:753 -msgid "Name of parent automount map (default: auto.master)." +#: ipalib/parameters.py:1526 +#, python-format +msgid "must be one of %(values)r" msgstr "" -#: ipalib/plugins/automount.py:772 -msgid "" -"\n" -" Delete an automount key.\n" -" " +#: ipalib/plugins/aci.py:153 +msgid "A list of ACI values" msgstr "" -#: ipalib/plugins/automount.py:803 -msgid "" -"\n" -" Modify an automount key.\n" -" " +#: ipalib/plugins/aci.py:215 +msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/automount.py:809 -msgid "New mount information" +#: ipalib/plugins/aci.py:218 +msgid "ACI prefix is required" msgstr "" -#: ipalib/plugins/automount.py:836 +#: ipalib/plugins/aci.py:221 msgid "" -"\n" -" Search for an automount key.\n" -" " +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -#: ipalib/plugins/automount.py:844 -msgid "" -"\n" -" Display an automount key.\n" -" " +#: ipalib/plugins/aci.py:224 +msgid "filter and memberof are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:19 -msgid "" -"\n" -"Base classes for LDAP plugins.\n" +#: ipalib/plugins/aci.py:230 +msgid "group, permission and self are mutually exclusive" msgstr "" -#: ipalib/plugins/baseldap.py:39 -msgid "Failed members" +#: ipalib/plugins/aci.py:232 +msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/baseldap.py:42 -msgid "Member users" +#: ipalib/plugins/aci.py:251 +#, python-format +msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/baseldap.py:45 -msgid "Member groups" +#: ipalib/plugins/aci.py:273 +msgid "empty filter" msgstr "" -#: ipalib/plugins/baseldap.py:48 -msgid "Member of groups" +#: ipalib/plugins/aci.py:294 +#, python-format +msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/baseldap.py:51 -msgid "Member hosts" +#: ipalib/plugins/aci.py:379 +#, python-format +msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/baseldap.py:54 -msgid "Member host-groups" +#: ipalib/plugins/aci.py:400 +msgid "ACI prefix" msgstr "" -#: ipalib/plugins/baseldap.py:57 -msgid "Member of host-groups" +#: ipalib/plugins/aci.py:401 +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" msgstr "" -#: ipalib/plugins/baseldap.py:66 -msgid "Roles" +#: ipalib/plugins/aci.py:412 +msgid "ACIs" msgstr "" -#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65 -#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139 -#: ipalib/plugins/sudorule.py:143 -msgid "Sudo Command Groups" +#: ipalib/plugins/aci.py:417 +msgid "ACI name" msgstr "" -#: ipalib/plugins/baseldap.py:75 -msgid "Granting privilege to roles" +#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109 +msgid "Permission" msgstr "" -#: ipalib/plugins/baseldap.py:78 -msgid "Member netgroups" +#: ipalib/plugins/aci.py:424 +msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:81 -msgid "Member of netgroups" +#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134 +msgid "User group" msgstr "" -#: ipalib/plugins/baseldap.py:84 -msgid "Member services" +#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135 +msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/baseldap.py:87 -msgid "Member service groups" +#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64 +#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108 +#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88 +msgid "Permissions" msgstr "" -#: ipalib/plugins/baseldap.py:93 -msgid "Member HBAC service groups" +#: ipalib/plugins/aci.py:436 +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/baseldap.py:102 -msgid "Indirect Member users" +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122 +#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95 +msgid "Attributes" msgstr "" -#: ipalib/plugins/baseldap.py:105 -msgid "Indirect Member groups" +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123 +#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96 +msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/baseldap.py:108 -msgid "Indirect Member hosts" +#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134 +msgid "Type" msgstr "" -#: ipalib/plugins/baseldap.py:111 -msgid "Indirect Member host-groups" +#: ipalib/plugins/aci.py:452 +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/baseldap.py:114 -msgid "Indirect Member of roles" +#: ipalib/plugins/aci.py:458 +msgid "Member of" msgstr "" -#: ipalib/plugins/baseldap.py:117 -msgid "Indirect Member permissions" +#: ipalib/plugins/aci.py:459 +msgid "Member of a group" msgstr "" -#: ipalib/plugins/baseldap.py:120 -msgid "Indirect Member HBAC service" +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147 +msgid "Filter" msgstr "" -#: ipalib/plugins/baseldap.py:123 -msgid "Indirect Member HBAC service group" +#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148 +msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/baseldap.py:126 -msgid "Indirect Member netgroups" +#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153 +msgid "Subtree" msgstr "" -#: ipalib/plugins/baseldap.py:141 -msgid "External host" +#: ipalib/plugins/aci.py:471 +msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:144 -msgid "Failed hosts/hostgroups" +#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159 +msgid "Target group" msgstr "" -#: ipalib/plugins/baseldap.py:147 -msgid "Failed users/groups" +#: ipalib/plugins/aci.py:477 +msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/baseldap.py:150 -msgid "Failed managedby" +#: ipalib/plugins/aci.py:482 +msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:153 -msgid "Failed to remove" +#: ipalib/plugins/aci.py:483 +msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/baseldap.py:171 -msgid "" -"\n" -" Given a list of values in the form name=value, return a list of name.\n" -" " +#: ipalib/plugins/aci.py:495 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:500 +msgid "Test the ACI syntax but don't write anything" +msgstr "" + +#: ipalib/plugins/aci.py:551 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843 +#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250 +#: ipalib/plugins/selfservice.py:207 +msgid "ACI" +msgstr "" + +#: ipalib/plugins/aci.py:601 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/aci.py:666 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" + +#: ipalib/plugins/aci.py:891 +msgid "New ACI name" +msgstr "" + +#: ipalib/plugins/aci.py:895 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:197 +#: ipalib/plugins/automember.py:28 msgid "" "\n" -" When adding or removing reverse members we are faking an update to\n" -" object A by updating the member attribute in object B. The memberof\n" -" plugin makes this work by adding or removing the memberof attribute\n" -" to/from object A, it just takes a little bit of time.\n" +"Auto Membership Rule.\n" "\n" -" This will loop for 6+ seconds, retrieving object A so we can see\n" -" if all the memberof attributes have been updated.\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" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Create the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Set the default target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/baseldap.py:241 -msgid "" -"\n" -" Object representing a LDAP entry.\n" -" " +#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:281 -msgid "Entry" +#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/baseldap.py:283 -msgid "container entry (%(container)s) not found" +#: ipalib/plugins/automember.py:127 +msgid "Attribute Key" msgstr "" -#: ipalib/plugins/baseldap.py:284 -msgid "%(parent)s: %(oname)s not found" +#: ipalib/plugins/automember.py:128 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a" +" user" msgstr "" -#: ipalib/plugins/baseldap.py:285 -msgid "%(pkey)s: %(oname)s not found" +#: ipalib/plugins/automember.py:135 +msgid "Grouping Type" msgstr "" -#: ipalib/plugins/baseldap.py:286 -msgid "%(oname)s with name \"%(pkey)s\" already exists" +#: ipalib/plugins/automember.py:136 +msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/baseldap.py:415 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute must be " -"part of the schema." +#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +msgid "Automember Rule" msgstr "" -#: ipalib/plugins/baseldap.py:420 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." +#: ipalib/plugins/automember.py:166 +msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/baseldap.py:444 -msgid "" -"\n" -" If the set of objectclasses is limited enforce that only those\n" -" are updated in entry_attrs (plus dn)\n" -"\n" -" allow_only tells us what mode to check in:\n" -"\n" -" If True then we enforce that the attributes must be in the list of\n" -" allowed.\n" -"\n" -" If False then those attributes are not allowed.\n" -" " +#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526 +#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181 +#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 +#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87 +#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76 +#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103 +msgid "Description" msgstr "" -#: ipalib/plugins/baseldap.py:474 -msgid "" -"\n" -" Callback registration interface\n" -" " +#: ipalib/plugins/automember.py:172 +msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/baseldap.py:561 -msgid "" -"\n" -" Create a new entry in LDAP.\n" -" " +#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 +msgid "Default Group" msgstr "" -#: ipalib/plugins/baseldap.py:703 -msgid "" -"\n" -" Base class for commands that need to retrieve an existing entry.\n" -" " +#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510 +msgid "Default group for entires to land" msgstr "" -#: ipalib/plugins/baseldap.py:727 -msgid "" -"\n" -" Base class for commands that need to retrieve one or more existing entries.\n" -" " +#: ipalib/plugins/automember.py:188 +#, python-format +msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/baseldap.py:733 -msgid "Continuous mode: Don't stop on errors." +#: ipalib/plugins/automember.py:215 +#, python-format +msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/baseldap.py:750 +#: ipalib/plugins/automember.py:228 msgid "" "\n" -" Retrieve an LDAP entry.\n" +" Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827 -#: ipalib/plugins/internal.py:232 -msgid "Rights" +#: ipalib/plugins/automember.py:233 +#, python-format +msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." +#: ipalib/plugins/automember.py:239 +msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/baseldap.py:821 +#: ipalib/plugins/automember.py:252 msgid "" "\n" -" Update an LDAP entry.\n" +" Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:837 -msgid "Rename" +#: ipalib/plugins/automember.py:257 +msgid "Failed to add" msgstr "" -#: ipalib/plugins/baseldap.py:838 -msgid "Rename the %(ldap_obj_name)s object" +#: ipalib/plugins/automember.py:264 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:957 -msgid "the entry was deleted while being modified" +#: ipalib/plugins/automember.py:273 +msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:988 -msgid "" -"\n" -" Delete an LDAP entry and all of its direct subentries.\n" -" " +#: ipalib/plugins/automember.py:277 +msgid "Number of conditions added" msgstr "" -#: ipalib/plugins/baseldap.py:1078 +#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipalib/plugins/automember.py:329 msgid "" "\n" -" Base class for member manipulation.\n" -" " +" Override this so we can add completed and failed to the return result.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1120 +#: ipalib/plugins/automember.py:345 msgid "" "\n" -" Add other LDAP entries to members.\n" +" Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592 -#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191 -#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203 -msgid "Members that could not be added" +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596 -msgid "Number of members added" +#: ipalib/plugins/automember.py:359 +msgid "Conditions that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/automember.py:363 +msgid "Number of conditions removed" +msgstr "" + +#: ipalib/plugins/automember.py:418 msgid "" "\n" -" Remove LDAP entries from members.\n" -" " +" Override this so we can set completed and failed.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705 -msgid "Members that could not be removed" +#: ipalib/plugins/automember.py:434 +msgid "" +"\n" +" Modify an automember rule.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709 -msgid "Number of members removed" +#: ipalib/plugins/automember.py:439 +#, python-format +msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1335 +#: ipalib/plugins/automember.py:450 msgid "" "\n" -" Retrieve all LDAP entries matching the given criteria.\n" +" Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1344 -msgid "Time Limit" -msgstr "" - -#: ipalib/plugins/baseldap.py:1345 -msgid "Time limit of search in seconds" +#: ipalib/plugins/automember.py:455 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1351 -msgid "Size Limit" +#: ipalib/plugins/automember.py:466 +msgid "" +"\n" +" Search for automember rules.\n" +" " msgstr "" -#: ipalib/plugins/baseldap.py:1352 -msgid "Maximum number of entries returned" -msgstr "" +#: ipalib/plugins/automember.py:473 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" -#: ipalib/plugins/baseldap.py:1552 +#: ipalib/plugins/automember.py:486 msgid "" "\n" -" Base class for reverse member manipulation.\n" +" Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1574 +#: ipalib/plugins/automember.py:502 msgid "" "\n" -" Add other LDAP entries to members in reverse.\n" -"\n" -" The call looks like \"add A to B\" but in fact executes\n" -" add B to A to handle reverse membership.\n" +" Set default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1654 -msgid "added" +#: ipalib/plugins/automember.py:514 +#, python-format +msgid "Set default group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/baseldap.py:1687 +#: ipalib/plugins/automember.py:531 msgid "" "\n" -" Remove other LDAP entries from members in reverse.\n" -"\n" -" The call looks like \"remove A from B\" but in fact executes\n" -" remove B from A to handle reverse membership.\n" +" Remove default group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/baseldap.py:1767 -msgid "removed" +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/automember.py:548 +msgid "No default group set" msgstr "" -#: ipalib/plugins/batch.py:21 +#: ipalib/plugins/automember.py:567 msgid "" "\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" +" Display information about the default automember groups.\n" +" " +msgstr "" + +#: ipalib/plugins/automount.py:29 +msgid "" "\n" -"To run this code in the lite-server\n" +"Automount\n" "\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n" +"Stores automount(8) configuration for autofs(8) in IPA.\n" "\n" -"where the contents of the file batch_request.json follow the below example\n" +"The base of an automount configuration is the configuration file auto.master.\n" +"This is also the base location in IPA. Multiple auto.master configurations\n" +"can be stored in separate locations. A location is implementation-specific\n" +"with the default being a location named 'default'. For example, you can have\n" +"locations by geographic region, by floor, by type, etc.\n" "\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" +"Automount has three basic object types: locations, maps and keys.\n" "\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" +"A location defines a set of maps anchored in auto.master. This allows you\n" +"to store multiple automount configurations. A location in itself isn't\n" +"very interesting, it is just a point to start a new automount map.\n" "\n" +"A map is roughly equivalent to a discrete automount file and provides\n" +"storage for keys.\n" "\n" -"And then a nested response for each IPA command method sent in the request\n" +"A key is a mount point associated with a map.\n" "\n" -msgstr "" - -#: ipalib/plugins/batch.py:61 -msgid "Nested Methods to execute" -msgstr "" - -#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - -#: ipalib/plugins/cert.py:22 -msgid "" +"When a new location is created, two maps are automatically created for\n" +"it: auto.master and auto.direct. auto.master is the root map for all\n" +"automount maps for the location. auto.direct is the default map for\n" +"direct mounts and is mounted on /-.\n" "\n" -"IPA certificate operations\n" +"EXAMPLES:\n" "\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Locations:\n" "\n" -"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" -"in PEM format.\n" +" Create a named location, \"Baltimore\":\n" +" ipa automountlocation-add baltimore\n" "\n" -"If using the selfsign back end then the subject in the CSR needs to match\n" -"the subject configured in the server. The dogtag CA uses just the CN\n" -"value of the CSR and forces the rest of the subject.\n" +" Display the new location:\n" +" ipa automountlocation-show baltimore\n" "\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +" Find available locations:\n" +" ipa automountlocation-find\n" "\n" -"In order to request a certificate:\n" +" Remove a named automount location:\n" +" ipa automountlocation-del baltimore\n" "\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add it)\n" +" Show what the automount maps would look like if they were in the filesystem:\n" +" ipa automountlocation-tofiles baltimore\n" "\n" -"EXAMPLES:\n" +" Import an existing configuration into a location:\n" +" ipa automountlocation-import baltimore /etc/auto.master\n" "\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +" The import will fail if any duplicate entries are found. For\n" +" continuous operation where errors are ignored, use the --continue\n" +" option.\n" "\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" +"Maps:\n" "\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" +" Create a new map, \"auto.share\":\n" +" ipa automountmap-add baltimore auto.share\n" "\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" +" Display the new map:\n" +" ipa automountmap-show baltimore auto.share\n" "\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" +" Find maps in the location baltimore:\n" +" ipa automountmap-find baltimore\n" "\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" +" Remove the auto.share map:\n" +" ipa automountmap-del baltimore auto.share\n" "\n" -"The following revocation reasons are supported:\n" +"Keys:\n" "\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" +" Create a new key for the auto.share map in location baltimore. This ties\n" +" the map we previously created to auto.master:\n" +" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n" "\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +" Create a new key for our auto.share map, an NFS mount for man pages:\n" +" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n" "\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" +" Find all keys for the auto.share map:\n" +" ipa automountkey-find baltimore auto.share\n" +"\n" +" Find all direct automount keys:\n" +" ipa automountkey-find baltimore --key=/-\n" "\n" +" Remove the man key from the auto.share map:\n" +" ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipalib/plugins/cert.py:104 -msgid "" -"\n" -" Return the value of CN in the subject of the request or None\n" -" " +#: ipalib/plugins/automount.py:191 +msgid "automount location" msgstr "" -#: ipalib/plugins/cert.py:112 -msgid "Failure decoding Certificate Signing Request:" +#: ipalib/plugins/automount.py:192 +msgid "automount locations" msgstr "" -#: ipalib/plugins/cert.py:115 -msgid "" -"\n" -" Return the first value of the subject alt name, if any\n" -" " +#: ipalib/plugins/automount.py:195 +msgid "Automount Locations" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137 -msgid "Failure decoding Certificate Signing Request" +#: ipalib/plugins/automount.py:196 +msgid "Automount Location" msgstr "" -#: ipalib/plugins/cert.py:128 -msgid "" -"\n" -" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n" -" parser.\n" -" " +#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273 +msgid "Location" msgstr "" -#: ipalib/plugins/cert.py:139 -msgid "Failure decoding Certificate Signing Request: %s" +#: ipalib/plugins/automount.py:202 +msgid "Automount location name." msgstr "" -#: ipalib/plugins/cert.py:142 -msgid "" -"\n" -" Strip any leading and trailing cruft around the BEGIN/END block\n" -" " +#: ipalib/plugins/automount.py:211 +msgid "Create a new automount location." msgstr "" -#: ipalib/plugins/cert.py:162 -msgid "" -"\n" -" Convert a SN given in decimal or hexadecimal.\n" -" Returns the number or None if conversion fails.\n" -" " +#: ipalib/plugins/automount.py:213 +#, python-format +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:188 -msgid "" -"\n" -" Given a principal with or without a realm return the\n" -" host portion.\n" -" " +#: ipalib/plugins/automount.py:232 +msgid "Delete an automount location." msgstr "" -#: ipalib/plugins/cert.py:202 -msgid "" -"\n" -" Submit a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:234 +#, python-format +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225 -msgid "Principal" +#: ipalib/plugins/automount.py:240 +msgid "Display an automount location." msgstr "" -#: ipalib/plugins/cert.py:217 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/automount.py:246 +msgid "Search for an automount location." msgstr "" -#: ipalib/plugins/cert.py:224 -msgid "automatically add the principal if it doesn't exist" +#: ipalib/plugins/automount.py:249 +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:257 +msgid "Generate automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276 -#: ipalib/plugins/service.py:232 -msgid "Certificate" +#: ipalib/plugins/automount.py:319 +msgid "Import automount files for a specific location." msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93 -msgid "Subject" +#: ipalib/plugins/automount.py:323 +msgid "Master file" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99 -msgid "Issuer" +#: ipalib/plugins/automount.py:324 +msgid "Automount master file." msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102 -msgid "Not Before" +#: ipalib/plugins/automount.py:331 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105 -msgid "Not After" +#: ipalib/plugins/automount.py:343 +#, python-format +msgid "File %(file)s not found" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108 -msgid "Fingerprint (MD5)" +#: ipalib/plugins/automount.py:512 +msgid "automount map" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111 -msgid "Fingerprint (SHA1)" +#: ipalib/plugins/automount.py:513 +msgid "automount maps" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425 -msgid "Serial number" +#: ipalib/plugins/automount.py:520 +msgid "Map" msgstr "" -#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57 -msgid "Dictionary mapping variable name to value" +#: ipalib/plugins/automount.py:521 +msgid "Automount map name." msgstr "" -#: ipalib/plugins/cert.py:396 -msgid "" -"\n" -" Check the status of a certificate signing request.\n" -" " +#: ipalib/plugins/automount.py:530 +msgid "Automount Maps" msgstr "" -#: ipalib/plugins/cert.py:402 -msgid "Request id" +#: ipalib/plugins/automount.py:531 +msgid "Automount Map" msgstr "" -#: ipalib/plugins/cert.py:408 -msgid "Request status" +#: ipalib/plugins/automount.py:537 +msgid "Create a new automount map." msgstr "" -#: ipalib/plugins/cert.py:426 -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +#: ipalib/plugins/automount.py:539 +#, python-format +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:431 -msgid "" -"\n" -" Retrieve an existing certificate.\n" -" " +#: ipalib/plugins/automount.py:545 +msgid "Delete an automount map." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180 -#: ipalib/plugins/service.py:114 -msgid "Revocation reason" +#: ipalib/plugins/automount.py:547 +#, python-format +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:466 -msgid "Output filename" +#: ipalib/plugins/automount.py:565 +msgid "Modify an automount map." msgstr "" -#: ipalib/plugins/cert.py:467 -msgid "File to store the certificate in." +#: ipalib/plugins/automount.py:567 +#, python-format +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipalib/plugins/cert.py:518 -msgid "" -"\n" -" Revoke a certificate.\n" -" " +#: ipalib/plugins/automount.py:573 +msgid "Search for an automount map." msgstr "" -#: ipalib/plugins/cert.py:526 -msgid "Revoked" +#: ipalib/plugins/automount.py:576 +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:584 +msgid "Display an automount map." msgstr "" -#: ipalib/plugins/cert.py:534 -msgid "Reason" +#: ipalib/plugins/automount.py:590 +msgid "Automount key object." msgstr "" -#: ipalib/plugins/cert.py:535 -msgid "Reason for revoking the certificate (0-10)" +#: ipalib/plugins/automount.py:594 +msgid "automount key" msgstr "" -#: ipalib/plugins/cert.py:562 -msgid "" -"\n" -" Take a revoked certificate off hold.\n" -" " +#: ipalib/plugins/automount.py:595 +msgid "automount keys" msgstr "" -#: ipalib/plugins/cert.py:570 -msgid "Unrevoked" +#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804 +#: ipalib/plugins/automount.py:911 +msgid "Key" msgstr "" -#: ipalib/plugins/cert.py:573 -msgid "Error" +#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805 +#: ipalib/plugins/automount.py:912 +msgid "Automount key name." msgstr "" -#: ipalib/plugins/config.py:20 -msgid "" -"\n" -"Manage the IPA configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -" To show the current configuration:\n" -" ipa config-show\n" -"\n" -" To modify the configuration:\n" -" ipa config-mod --maxusername=99\n" -"\n" -"The available options are:\n" -"\n" -"User management options:\n" -"\n" -" --maxusername=INT Max. username length when creating/modifying a user\n" -" --homedirectory=STR Default location of home directories (default /home)\n" -" --defaultshell=STR Default shell for new users (default /bin/sh)\n" -" --defaultgroup=STR Default group for new users (default ipausers). The\n" -" group must exist, or adding new users will fail.\n" -" --emaildomain=STR Default e-mail domain for new users\n" -"\n" -"Search tuning options. These impact how much data is searched through and\n" -"how many records may be returned on a given search.\n" -"\n" -" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n" -" unlimited)\n" -" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n" -"\n" -"Server Configuration.\n" -"\n" -" --enable-migration=BOOL Enable migration mode\n" -" --pwdexpnotify=INT Password Expiration Notification (days)\n" -"\n" -"The password notification value is stored here so it will be replicated.\n" -"It is not currently used to notify users in advance of an expiring\n" -"password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" +#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:916 +msgid "Mount information" msgstr "" -#: ipalib/plugins/config.py:76 -msgid "searchtimelimit must be -1 or > 1." +#: ipalib/plugins/automount.py:615 +msgid "description" msgstr "" -#: ipalib/plugins/config.py:80 +#: ipalib/plugins/automount.py:624 +msgid "Automount Keys" +msgstr "" + +#: ipalib/plugins/automount.py:625 +msgid "Automount Key" +msgstr "" + +#: ipalib/plugins/automount.py:626 +#, python-format msgid "" -"\n" -" IPA configuration object\n" -" " +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151 -msgid "Configuration" +#: ipalib/plugins/automount.py:627 +#, python-format +msgid "key named %(key)s already exists" msgstr "" -#: ipalib/plugins/config.py:96 -msgid "Max. username length" +#: ipalib/plugins/automount.py:628 +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" msgstr "" -#: ipalib/plugins/config.py:101 -msgid "Home directory base" +#: ipalib/plugins/automount.py:678 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." msgstr "" -#: ipalib/plugins/config.py:102 -msgid "Default location of home directories." +#: ipalib/plugins/automount.py:736 +msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/config.py:106 -msgid "Default shell" +#: ipalib/plugins/automount.py:738 +#, python-format +msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:107 -msgid "Default shell for new users." +#: ipalib/plugins/automount.py:761 +msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/config.py:111 -msgid "Default users group" +#: ipalib/plugins/automount.py:763 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:112 -msgid "Default group for new users." +#: ipalib/plugins/automount.py:768 +msgid "Mount point" msgstr "" -#: ipalib/plugins/config.py:116 -msgid "Default e-mail domain for new users" +#: ipalib/plugins/automount.py:772 +msgid "Parent map" msgstr "" -#: ipalib/plugins/config.py:117 -msgid "Default e-mail domain new users." +#: ipalib/plugins/automount.py:773 +msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/config.py:121 -msgid "Search time limit" +#: ipalib/plugins/automount.py:797 +msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/config.py:122 -msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)." +#: ipalib/plugins/automount.py:799 +#, python-format +msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:127 -msgid "Search size limit" +#: ipalib/plugins/automount.py:839 +msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/config.py:128 -msgid "Max. number of records to search (-1 is unlimited)." +#: ipalib/plugins/automount.py:841 +#, python-format +msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/config.py:133 -msgid "User search fields" +#: ipalib/plugins/automount.py:846 +msgid "New mount information" msgstr "" -#: ipalib/plugins/config.py:134 -msgid "A comma-separated list of fields to search when searching for users." +#: ipalib/plugins/automount.py:895 +msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/config.py:139 -msgid "A comma-separated list of fields to search when searching for groups." +#: ipalib/plugins/automount.py:898 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "" + +#: ipalib/plugins/automount.py:906 +msgid "Display an automount key." msgstr "" -#: ipalib/plugins/config.py:143 -msgid "Migration mode" +#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487 +#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235 +msgid "Password" msgstr "" -#: ipalib/plugins/config.py:144 -msgid "Enable migration mode." +#: ipalib/plugins/baseldap.py:43 +msgid "Failed members" msgstr "" -#: ipalib/plugins/config.py:148 -msgid "Certificate Subject base" +#: ipalib/plugins/baseldap.py:46 +msgid "Member users" msgstr "" -#: ipalib/plugins/config.py:149 -msgid "Base for certificate subjects (OU=Test,O=Example)." +#: ipalib/plugins/baseldap.py:49 +msgid "Member groups" msgstr "" -#: ipalib/plugins/config.py:154 -msgid "Default group objectclasses" +#: ipalib/plugins/baseldap.py:52 +msgid "Member of groups" msgstr "" -#: ipalib/plugins/config.py:155 -msgid "Default group objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:55 +msgid "Member hosts" msgstr "" -#: ipalib/plugins/config.py:159 -msgid "Default user objectclasses" +#: ipalib/plugins/baseldap.py:58 +msgid "Member host-groups" msgstr "" -#: ipalib/plugins/config.py:160 -msgid "Default user objectclassses (comma-separated list)." +#: ipalib/plugins/baseldap.py:61 +msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/config.py:164 -msgid "Password Expiration Notification" +#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81 +msgid "Roles" msgstr "" -#: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66 +#: ipalib/plugins/sudocmdgroup.py:86 +msgid "Sudo Command Groups" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/baseldap.py:79 +msgid "Granting privilege to roles" msgstr "" -#: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +#: ipalib/plugins/baseldap.py:82 +msgid "Member netgroups" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/baseldap.py:85 +msgid "Member of netgroups" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/baseldap.py:88 +msgid "Member services" msgstr "" -#: ipalib/plugins/delegation.py:19 -msgid "" -"\n" -"Group to Group Delegation\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"Group to Group Delegations grants the members of one group to update a set\n" -"of attributes of members of another group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a delegation rule to allow editors to edit admin's addresses:\n" -" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n" -"\n" -" Display our updated rule:\n" -" ipa delegation-show 'editors edit admins street'\n" -"\n" -" Delete a rule:\n" -" ipa delegation-del 'editors edit admins street'\n" +#: ipalib/plugins/baseldap.py:91 +msgid "Member service groups" msgstr "" -#: ipalib/plugins/delegation.py:56 -msgid "" -"\n" -" memberOf is in filter but we want to pull out the group for easier\n" -" displaying.\n" -" " +#: ipalib/plugins/baseldap.py:97 +msgid "Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90 -msgid "Delegation '%(permission)s' not found" +#: ipalib/plugins/baseldap.py:100 +msgid "Member HBAC service groups" msgstr "" -#: ipalib/plugins/delegation.py:70 -msgid "Error retrieving member group %(group)s: %(error)s" +#: ipalib/plugins/baseldap.py:109 +msgid "Indirect Member users" msgstr "" -#: ipalib/plugins/delegation.py:79 -msgid "" -"\n" -" Determine if the ACI is a Delegation ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a delegation ACI, adding a new attribute\n" -" membergroup.\n" -" " +#: ipalib/plugins/baseldap.py:112 +msgid "Indirect Member groups" msgstr "" -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\n" -" " +#: ipalib/plugins/baseldap.py:115 +msgid "Indirect Member hosts" msgstr "" -#: ipalib/plugins/delegation.py:102 -msgid "Delegation" +#: ipalib/plugins/baseldap.py:118 +msgid "Indirect Member host-groups" msgstr "" -#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108 -msgid "Delegation name" +#: ipalib/plugins/baseldap.py:121 +msgid "Indirect Member of roles" msgstr "" -#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is " -"write." +#: ipalib/plugins/baseldap.py:124 +msgid "Indirect Member permissions" msgstr "" -#: ipalib/plugins/delegation.py:125 -msgid "Member user group" +#: ipalib/plugins/baseldap.py:127 +msgid "Indirect Member HBAC service" msgstr "" -#: ipalib/plugins/delegation.py:126 -msgid "User group to apply delegation to" +#: ipalib/plugins/baseldap.py:130 +msgid "Indirect Member HBAC service group" msgstr "" -#: ipalib/plugins/delegation.py:152 -msgid "" -"\n" -" Add a new delegation.\n" -" " +#: ipalib/plugins/baseldap.py:133 +msgid "Indirect Member netgroups" msgstr "" -#: ipalib/plugins/delegation.py:156 -msgid "Added delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:148 +msgid "External host" msgstr "" -#: ipalib/plugins/delegation.py:176 -msgid "" -"\n" -" Delete a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:151 +msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:181 -msgid "Deleted delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:154 +msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/delegation.py:197 -msgid "" -"\n" -" Modify a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:157 +msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/delegation.py:201 -msgid "Modified delegation \"%(value)s\"" +#: ipalib/plugins/baseldap.py:160 +msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/delegation.py:219 -msgid "" -"\n" -" Search for delegations.\n" -" " +#: ipalib/plugins/baseldap.py:163 +msgid "Failed managedby" msgstr "" -#: ipalib/plugins/delegation.py:223 -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "" - -#: ipalib/plugins/delegation.py:250 -msgid "" -"\n" -" Display information about a delegation.\n" -" " +#: ipalib/plugins/baseldap.py:166 +msgid "Failed to remove" msgstr "" -#: ipalib/plugins/dns.py:20 -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --name-server nameserver.example.com\n" -" --admin-email admin@example.com\n" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" -"\n" -" Add new A record for www.example.com: (random IP)\n" -" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" -"\n" -" When dnsrecord-add command is executed with no option to add a specific record\n" -" an interactive mode is started. The mode interactively prompts for the most\n" -" typical record types for the respective zone:\n" -" ipa dnsrecord-add example.com www\n" -" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" -" [AAAA record]: (no AAAA address entered)\n" -" Record name: www\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" The interactive mode can also be used for deleting the DNS records:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 1.2.3.4, 11.22.33.44\n" -"\n" -" Delete A record '1.2.3.4'? Yes/No (default No): \n" -" Delete A record '11.22.33.44'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -"\n" -" Find A records with value 10.10.0.1 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" +#: ipalib/plugins/baseldap.py:306 +msgid "entry" msgstr "" -#: ipalib/plugins/dns.py:140 -msgid "Generate serial number for zones." +#: ipalib/plugins/baseldap.py:307 +msgid "entries" msgstr "" -#: ipalib/plugins/dns.py:189 -msgid "see RFC 2915 " +#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340 +msgid "Entry" msgstr "" -#: ipalib/plugins/dns.py:249 -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +#: ipalib/plugins/baseldap.py:342 +#, python-format +msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/dns.py:272 -msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +#: ipalib/plugins/baseldap.py:343 +#, python-format +msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/baseldap.py:344 +#, python-format +msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/baseldap.py:345 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/baseldap.py:632 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: ipalib/plugins/baseldap.py:638 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -#: ipalib/plugins/dns.py:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/baseldap.py:644 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: ipalib/plugins/baseldap.py:965 +msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/dns.py:308 -msgid "SOA serial" +#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/internal.py:409 +msgid "Rights" msgstr "" -#: ipalib/plugins/dns.py:309 -msgid "SOA record serial number" +#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: ipalib/plugins/baseldap.py:1072 +msgid "Rename" msgstr "" -#: ipalib/plugins/dns.py:317 -msgid "SOA record refresh time" +#: ipalib/plugins/baseldap.py:1073 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" +#: ipalib/plugins/baseldap.py:1165 +msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782 +#, python-format +msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/dns.py:332 -msgid "SOA expire" +#: ipalib/plugins/baseldap.py:1302 +#, python-format +msgid "member %s" msgstr "" -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807 +#, python-format +msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819 +#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 +msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823 +msgid "Number of members added" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" +#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920 +#, python-format +msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" +#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932 +msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/dns.py:354 -msgid "SOA class" +#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936 +msgid "Number of members removed" msgstr "" -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" +#: ipalib/plugins/baseldap.py:1548 +#, python-format +msgid "Search for %s with these %s %s." msgstr "" -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" +#: ipalib/plugins/baseldap.py:1549 +#, python-format +msgid "Search for %s without these %s %s." msgstr "" -#: ipalib/plugins/dns.py:365 -msgid "Active zone" +#: ipalib/plugins/baseldap.py:1557 +msgid "Time Limit" msgstr "" -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" +#: ipalib/plugins/baseldap.py:1558 +msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" +#: ipalib/plugins/baseldap.py:1564 +msgid "Size Limit" msgstr "" -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." +#: ipalib/plugins/baseldap.py:1565 +msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/dns.py:382 -msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +#: ipalib/plugins/baseldap.py:1586 +msgid "Primary key only" msgstr "" -#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" +#: ipalib/plugins/baseldap.py:1587 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/baseldap.py:1881 +msgid "added" msgstr "" -#: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/baseldap.py:1994 +msgid "removed" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/batch.py:62 +msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/dns.py:431 +#: ipalib/plugins/cert.py:43 msgid "" "\n" -" Delete DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:439 -msgid "" +"IPA certificate operations\n" "\n" -" Modify DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:452 -msgid "" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" Search for DNS zones (SOA records).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:460 -msgid "" +"Certificate requests exist in the form of a Certificate Signing Request (CSR)\n" +"in PEM format.\n" "\n" -" Display information about a DNS zone (SOA record).\n" -" " -msgstr "" - -#: ipalib/plugins/dns.py:468 -msgid "" +"If using the selfsign back end then the subject in the CSR needs to match\n" +"the subject configured in the server. The dogtag CA uses just the CN\n" +"value of the CSR and forces the rest of the subject.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add it)\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Disable DNS Zone.\n" -" " msgstr "" -#: ipalib/plugins/dns.py:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:112 +msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/dns.py:490 -msgid "" -"\n" -" Enable DNS Zone.\n" -" " +#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/cert.py:144 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/dns.py:512 -msgid "" -"\n" -" DNS record.\n" -" " +#: ipalib/plugins/cert.py:207 +msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/cert.py:211 +msgid "CSR" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +msgid "Principal" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/cert.py:221 +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/cert.py:228 +msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302 +#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235 +msgid "Certificate" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 +#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94 +msgid "Subject" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 +#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100 +msgid "Issuer" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 +#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103 +msgid "Not Before" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 +#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106 +msgid "Not After" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 +#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109 +msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/dns.py:735 -msgid "" -"Reverse zone for PTR record should be a sub-zone of one the following fully " -"qualified domains: %s" +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 +#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112 +msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/dns.py:740 -msgid "Reverse zone %s requires exactly %d IP address components, %d given" +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +msgid "Serial number" msgstr "" -#: ipalib/plugins/dns.py:746 -msgid "PTR record '%s' is not fully qualified (check traling '.')" +#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/dns.py:789 -msgid "" -"\n" -" Delete DNS record entry.\n" -" " +#: ipalib/plugins/cert.py:400 +msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/dns.py:792 -msgid "Deleted record \"%(value)s\"" +#: ipalib/plugins/cert.py:404 +msgid "Request id" msgstr "" -#: ipalib/plugins/dns.py:799 -msgid "" -"\n" -" Delete DNS resource record.\n" -" " +#: ipalib/plugins/cert.py:410 +msgid "Request status" msgstr "" -#: ipalib/plugins/dns.py:802 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." +#: ipalib/plugins/cert.py:428 +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/dns.py:807 -msgid "Delete all associated records" +#: ipalib/plugins/cert.py:433 +msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/dns.py:834 -msgid "No option to delete specific record provided." +#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196 +#: ipalib/plugins/service.py:115 +msgid "Revocation reason" msgstr "" -#: ipalib/plugins/dns.py:835 -msgid "Delete all?" +#: ipalib/plugins/cert.py:466 +msgid "Output filename" msgstr "" -#: ipalib/plugins/dns.py:845 -msgid "Current DNS record contents:\n" +#: ipalib/plugins/cert.py:467 +msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/dns.py:875 -msgid "%s record with value %s not found" +#: ipalib/plugins/cert.py:518 +msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/dns.py:889 -msgid "" -"\n" -" Display DNS resource.\n" -" " +#: ipalib/plugins/cert.py:524 +msgid "Revoked" msgstr "" -#: ipalib/plugins/dns.py:905 -msgid "" -"\n" -" Search for DNS resources.\n" -" " +#: ipalib/plugins/cert.py:532 +msgid "Reason" msgstr "" -#: ipalib/plugins/dns.py:932 -msgid "" -"\n" -" Resolve a host name in DNS\n" -" " +#: ipalib/plugins/cert.py:533 +msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/dns.py:936 -msgid "Found '%(value)s'" +#: ipalib/plugins/cert.py:554 +msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/dns.py:940 -msgid "Hostname" +#: ipalib/plugins/cert.py:563 +msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/dns.py:962 -msgid "Host '%(host)s' not found" +#: ipalib/plugins/cert.py:569 +msgid "Unrevoked" msgstr "" -#: ipalib/plugins/dns.py:970 -msgid "" -"\n" -" Checks if any of the servers has the DNS service enabled.\n" -" " +#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225 +msgid "Error" msgstr "" -#: ipalib/plugins/entitle.py:19 +#: ipalib/plugins/config.py:31 msgid "" "\n" -"Entitlements\n" +"Server configuration\n" "\n" -"Manage entitlements for client machines\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" "\n" -"Entitlements can be managed either by registering with an entitlement\n" -"server with a username and password or by manually importing entitlement\n" -"certificates. An entitlement certificate contains embedded information\n" -"such as the product being entitled, the quantity and the validity dates.\n" +"NOTES:\n" "\n" -"An entitlement server manages the number of client entitlements available.\n" -"To mark these entitlements as used by the IPA server you provide a quantity\n" -"and they are marked as consumed on the entitlement server.\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" "\n" -" Register with an entitlement server:\n" -" ipa entitle-register consumer\n" +"Some attributes are read-only, provided only for information purposes. These\n" +"include:\n" "\n" -" Import an entitlement certificate:\n" -" ipa entitle-import /home/user/ipaclient.pem\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" "\n" -" Display current entitlements:\n" -" ipa entitle-status\n" +"EXAMPLES:\n" "\n" -" Retrieve details on entitlement certificates:\n" -" ipa entitle-get\n" +" Show basic server configuration:\n" +" ipa config-show\n" "\n" -" Consume some entitlements from the entitlement server:\n" -" ipa entitle-consume 50\n" +" Show all configuration options:\n" +" ipa config-show --all\n" "\n" -"The registration ID is a Unique Identifier (UUID). This ID will be\n" -"IMPORTED if you have used entitle-import.\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" "\n" -"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" -msgstr "" - -#: ipalib/plugins/entitle.py:106 -msgid "" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" "\n" -" Get our entitlement pool. Assume there is only one pool.\n" -" " +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" msgstr "" -#: ipalib/plugins/entitle.py:129 -msgid "" -"\n" -" Retrieve our UUID, certificate and key from LDAP.\n" -"\n" -" Except on error the caller is responsible for removing temporary files\n" -" " +#: ipalib/plugins/config.py:73 +msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/entitle.py:178 -msgid "" -"\n" -" Entitlement object\n" -" " +#: ipalib/plugins/config.py:80 +msgid "configuration options" msgstr "" -#: ipalib/plugins/entitle.py:189 -msgid "Entitlements" +#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90 +msgid "Configuration" msgstr "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/config.py:95 +msgid "Maximum username length" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 -msgid "UUID" +#: ipalib/plugins/config.py:100 +msgid "Home directory base" msgstr "" -#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306 -#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575 -#: ipalib/plugins/entitle.py:690 -msgid "Product" +#: ipalib/plugins/config.py:101 +msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286 -#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391 -#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680 -msgid "Quantity" +#: ipalib/plugins/config.py:105 +msgid "Default shell" msgstr "" -#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309 -#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693 -msgid "Consumed" +#: ipalib/plugins/config.py:106 +msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/entitle.py:276 -msgid "" -"\n" -" Consume an entitlement\n" -" " +#: ipalib/plugins/config.py:110 +msgid "Default users group" msgstr "" -#: ipalib/plugins/entitle.py:282 -msgid "Consumed %(value)s entitlement(s)." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: ipalib/plugins/entitle.py:314 -msgid "" -"\n" -" Override this so we can set value to the number of entitlements\n" -" consumed.\n" -" " +#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116 +msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724 -msgid "" -"\n" -" Returning the certificates isn't very interesting. Return the\n" -" status of entitlements instead.\n" -" " +#: ipalib/plugins/config.py:120 +msgid "Search time limit" msgstr "" -#: ipalib/plugins/entitle.py:380 +#: ipalib/plugins/config.py:121 msgid "" -"\n" -" Retrieve the entitlement certs\n" -" " +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:394 -msgid "Start" +#: ipalib/plugins/config.py:126 +msgid "Search size limit" msgstr "" -#: ipalib/plugins/entitle.py:397 -msgid "End" +#: ipalib/plugins/config.py:127 +msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96 -msgid "Serial Number" +#: ipalib/plugins/config.py:132 +msgid "User search fields" msgstr "" -#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626 -#: ipalib/plugins/entitle.py:628 -msgid "Not an entitlement certificate" +#: ipalib/plugins/config.py:133 +msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/entitle.py:460 +#: ipalib/plugins/config.py:138 msgid "" -"\n" -" Search for entitlement accounts.\n" -" " +"A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/entitle.py:473 -msgid "" -"\n" -" Register to the entitlement system\n" -" " +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/entitle.py:479 -msgid "Registered to entitlement server." +#: ipalib/plugins/config.py:147 +msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/entitle.py:483 -msgid "Username" +#: ipalib/plugins/config.py:148 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603 -msgid "Enrollment UUID" +#: ipalib/plugins/config.py:153 +msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271 -#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172 -msgid "Password" +#: ipalib/plugins/config.py:154 +msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:495 -msgid "Registration password" +#: ipalib/plugins/config.py:159 +msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/entitle.py:569 -msgid "" -"\n" -" Import an entitlement certificate.\n" -" " +#: ipalib/plugins/config.py:160 +msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/entitle.py:646 -msgid "" -"\n" -" If we are adding the first entry there are no updates so EmptyModlist\n" -" will get thrown. Ignore it.\n" -" " +#: ipalib/plugins/config.py:165 +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/entitle.py:667 -msgid "" -"\n" -" Re-sync the local entitlement cache with the entitlement server\n" -" " +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/entitle.py:673 -msgid "Entitlement(s) synchronized." +#: ipalib/plugins/config.py:171 +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/group.py:20 -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX, and you can use the same argument to the group-mod command\n" -"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/group.py:76 -msgid "" -"\n" -" Group object.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/group.py:100 -msgid "User Groups" +#: ipalib/plugins/config.py:192 +msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/group.py:108 -msgid "Group name" +#: ipalib/plugins/config.py:207 +#, python-format +msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77 -msgid "Group description" +#: ipalib/plugins/config.py:215 +msgid "May not be empty" msgstr "" -#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187 -msgid "GID" +#: ipalib/plugins/config.py:228 +#, python-format +msgid "%s default attribute %s would not be allowed!" msgstr "" -#: ipalib/plugins/group.py:120 -msgid "GID (use this option to set it manually)" +#: ipalib/plugins/config.py:237 +msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/group.py:128 +#: ipalib/plugins/delegation.py:28 msgid "" "\n" -" Create a new group.\n" -" " +"Group to Group Delegation\n" +"\n" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" +"\n" +"Group to Group Delegations grants the members of one group to update a set\n" +"of attributes of members of another group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a delegation rule to allow managers to edit employee's addresses:\n" +" ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add postalCode to the list:\n" +" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n" +"\n" +" Display our updated rule:\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Delete a rule:\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/group.py:132 -msgid "Added group \"%(value)s\"" +#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91 +#, python-format +msgid "Delegation '%(permission)s' not found" msgstr "" -#: ipalib/plugins/group.py:137 -msgid "Create as a non-POSIX group" +#: ipalib/plugins/delegation.py:71 +#, python-format +msgid "Error retrieving member group %(group)s: %(error)s" msgstr "" -#: ipalib/plugins/group.py:154 -msgid "" -"\n" -" Delete group.\n" -" " +#: ipalib/plugins/delegation.py:101 +msgid "delegation" msgstr "" -#: ipalib/plugins/group.py:158 -msgid "Deleted group \"%(value)s\"" +#: ipalib/plugins/delegation.py:102 +msgid "delegations" msgstr "" -#: ipalib/plugins/group.py:186 -msgid "" -"\n" -" Modify a group.\n" -" " +#: ipalib/plugins/delegation.py:103 +msgid "Delegations" msgstr "" -#: ipalib/plugins/group.py:189 -msgid "Modified group \"%(value)s\"" +#: ipalib/plugins/delegation.py:104 +msgid "Delegation" msgstr "" -#: ipalib/plugins/group.py:194 -msgid "change to a POSIX group" +#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110 +msgid "Delegation name" msgstr "" -#: ipalib/plugins/group.py:215 +#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89 msgid "" -"\n" -" Search for groups.\n" -" " +"Comma-separated list of permissions to grant (read, write). Default is " +"write." msgstr "" -#: ipalib/plugins/group.py:220 -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "" - -#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192 -msgid "search for private groups" +#: ipalib/plugins/delegation.py:129 +msgid "Member user group" msgstr "" -#: ipalib/plugins/group.py:257 -msgid "" -"\n" -" Display information about a named group.\n" -" " +#: ipalib/plugins/delegation.py:130 +msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/group.py:265 -msgid "" -"\n" -" Add members to a group.\n" -" " +#: ipalib/plugins/delegation.py:156 +msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/group.py:273 -msgid "" -"\n" -" Remove members from a group.\n" -" " +#: ipalib/plugins/delegation.py:158 +#, python-format +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:281 -msgid "" -"\n" -" Detach a managed group from a user\n" -" " +#: ipalib/plugins/delegation.py:178 +msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/group.py:285 -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +#: ipalib/plugins/delegation.py:181 +#, python-format +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:288 -msgid "" -"\n" -" This requires updating both the user and the group. We first need to\n" -" verify that both the user and group can be updated, then we go\n" -" about our work. We don't want a situation where only the user or\n" -" group can be modified and we're left in a bad state.\n" -" " +#: ipalib/plugins/delegation.py:197 +msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/group.py:306 -msgid "not allowed to modify user entries" +#: ipalib/plugins/delegation.py:199 +#, python-format +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:312 -msgid "not allowed to modify group entries" +#: ipalib/plugins/delegation.py:217 +msgid "Search for delegations." msgstr "" -#: ipalib/plugins/group.py:331 -msgid "Not a managed group" +#: ipalib/plugins/delegation.py:220 +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "" + +#: ipalib/plugins/delegation.py:246 +msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/hbacrule.py:19 +#: ipalib/plugins/dns.py:35 msgid "" "\n" -"Host-based access control\n" +"Domain Name System (DNS)\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" -"access a service, or group of services, on a target host.\n" +"Manage DNS zone and resource records.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" +"EXAMPLES:\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +" Add new zone:\n" +" ipa dnszone-add example.com --name-server nameserver.example.com\n" +" --admin-email admin@example.com\n" "\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +" Modify the zone to allow dynamic updates for hosts own records in realm EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n" "\n" -"EXAMPLES:\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip 80.142.15.0/24\n" +" --name-server nameserver.example.com\n" "\n" -" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" -" anywhere:\n" -" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Display the properties of a named HBAC rule:\n" -" ipa hbacrule-show test1\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n" "\n" -" Create a rule for a specific service. This lets the user john access\n" -" the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n" "\n" -" Create a rule for a new service group. This lets the user john access\n" -" the FTP service on any machine from any machine:\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n" "\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" +" Add new A record for www.example.com: (random IP)\n" +" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n" "\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n" +"\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n" +"\n" +" When dnsrecord-add command is executed with no option to add a specific record\n" +" an interactive mode is started. The mode interactively prompts for the most\n" +" typical record types for the respective zone:\n" +" ipa dnsrecord-add example.com www\n" +" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random IPs)\n" +" [AAAA record]: (no AAAA address entered)\n" +" Record name: www\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" The interactive mode can also be used for deleting the DNS records:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 1.2.3.4, 11.22.33.44\n" +"\n" +" Delete A record '1.2.3.4'? Yes/No (default No):\n" +" Delete A record '11.22.33.44'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +"\n" +" Find A records with value 10.10.0.1 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/hbacrule.py:91 -msgid "" -"\n" -" See if options[attribute] is lower-case 'all' in a safe way.\n" -" " +#: ipalib/plugins/dns.py:173 +msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/hbacrule.py:103 -msgid "" -"\n" -" HBAC object.\n" -" " +#: ipalib/plugins/dns.py:180 +msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/hbacrule.py:126 -msgid "HBAC Rule" +#: ipalib/plugins/dns.py:188 +msgid "format must be specified as \"priority weight port target\"" msgstr "" -#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73 -msgid "Rule name" +#: ipalib/plugins/dns.py:195 +msgid "" +"format must be specified as \"priority weight port target\" (see RFC 2782 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:136 -msgid "Rule type (allow or deny)" +#: ipalib/plugins/dns.py:205 +msgid "" +"format must be specified as \"priority mailserver\" (see RFC 1035 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:137 -msgid "Rule type" +#: ipalib/plugins/dns.py:211 +msgid "the value of priority must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124 -#: ipalib/plugins/sudorule.py:86 -msgid "User category" +#: ipalib/plugins/dns.py:214 +msgid "the value of priority must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125 -#: ipalib/plugins/sudorule.py:87 -msgid "User category the rule applies to" +#: ipalib/plugins/dns.py:223 +msgid "" +"format must be specified as \"order preference flags service regexp " +"replacement\" (see RFC 2915 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130 -#: ipalib/plugins/sudorule.py:92 -msgid "Host category" +#: ipalib/plugins/dns.py:230 +msgid "order and preference must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131 -#: ipalib/plugins/sudorule.py:93 -msgid "Host category the rule applies to" +#: ipalib/plugins/dns.py:233 +msgid "the value of order and preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:155 -msgid "Source host category" +#: ipalib/plugins/dns.py:238 +msgid "flag must be a single character (quotation is allowed)" msgstr "" -#: ipalib/plugins/hbacrule.py:156 -msgid "Source host category the rule applies to" +#: ipalib/plugins/dns.py:240 +msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/hbacrule.py:161 -msgid "Service category" +#: ipalib/plugins/dns.py:249 +msgid "" +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:162 -msgid "Service category the rule applies to" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81 -msgid "Enabled" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115 -#: ipalib/plugins/user.py:108 -msgid "Users" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl\" " +"(see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272 -#: ipalib/plugins/sudorule.py:119 -msgid "Groups" +#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317 +msgid "key_tag, algorithm and digest_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226 -#: ipalib/plugins/sudorule.py:123 -msgid "Hosts" +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73 -#: ipalib/plugins/sudorule.py:127 -msgid "Host Groups" +#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349 +msgid "the value of algorithm must be between 0 and 255" +msgstr "" + +#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457 +#, python-format +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:194 -msgid "Source hosts" +#: ipalib/plugins/dns.py:299 +#, python-format +msgid "format must be specified as \"target\" (see RFC 2672 for details): %s" msgstr "" -#: ipalib/plugins/hbacrule.py:198 -msgid "Source host groups" +#: ipalib/plugins/dns.py:309 +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196 -#: ipalib/plugins/service.py:220 -msgid "Services" +#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343 +msgid "the value of flags must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:206 -msgid "Service Groups" +#: ipalib/plugins/dns.py:323 +msgid "the value of algorithm and digest_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:215 +#: ipalib/plugins/dns.py:332 msgid "" -"\n" -" Create a new HBAC rule.\n" -" " +"format must be specified as \"flags protocol algorithm public_key\" (see RFC" +" 2535 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:219 -msgid "Added HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:340 +msgid "flags, protocol and algorithm must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Delete an HBAC rule.\n" -" " +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" msgstr "" -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" -#: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:391 +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/hbacrule.py:244 -msgid "Modified HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/hbacrule.py:266 -msgid "" -"\n" -" Search for HBAC rules.\n" -" " +#: ipalib/plugins/dns.py:398 +msgid "m1, m2, s1 and s2 must be between 0 and 59.999" msgstr "" -#: ipalib/plugins/hbacrule.py:270 -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:401 +msgid "alt must be between -100000.00 and 42849672.95" +msgstr "" -#: ipalib/plugins/hbacrule.py:278 -msgid "" -"\n" -" Display the properties of an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:405 +msgid "siz, hp and vp must be between 0 and 90000000.00" msgstr "" -#: ipalib/plugins/hbacrule.py:286 +#: ipalib/plugins/dns.py:414 +msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)" +msgstr "" + +#: ipalib/plugins/dns.py:423 msgid "" -"\n" -" Enable an HBAC rule.\n" -" " +"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\"" +" (see RFC 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:290 -msgid "Enabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:430 +msgid "type must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:315 +#: ipalib/plugins/dns.py:439 msgid "" -"\n" -" Disable an HBAC rule.\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/hbacrule.py:319 -msgid "Disabled HBAC rule \"%(value)s\"" +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" +msgstr "" + +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:344 +#: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Add an access time to an HBAC rule.\n" -" " +"format must be specified as \"type_covered algorithm labels original_ttl " +"signature_expiration signature_inception key_tag signers_name signature\" " +"(see RFC 2535, 4034 for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391 -msgid "Access time" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/hbacrule.py:385 -msgid "" -"\n" -" Remove access time to HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:425 +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Add users and groups to an HBAC rule.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/hbacrule.py:442 -msgid "" -"\n" -" Remove users and groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:452 -msgid "" -"\n" -" Add target hosts and hostgroups to an HBAC rule\n" -" " +#: ipalib/plugins/dns.py:496 +msgid "the value of original_ttl must be between 0 and 4294967295" msgstr "" -#: ipalib/plugins/hbacrule.py:469 -msgid "" -"\n" -" Remove target hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:499 +msgid "the value of tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/hbacrule.py:479 +#: ipalib/plugins/dns.py:508 msgid "" -"\n" -" Add source hosts and hostgroups from a HBAC rule.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "" -"\n" -" Remove source hosts and hostgroups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/hbacrule.py:506 -msgid "" -"\n" -" Add services to an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/hbacrule.py:523 -msgid "" -"\n" -" Remove service and service groups from an HBAC rule.\n" -" " +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/hbacsvc.py:19 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" -"\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" -"\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" -"\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" -"\n" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/hbacsvc.py:51 -msgid "" -"\n" -" HBAC Service object.\n" -" " +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:61 -msgid "HBAC Services" +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/hbacsvc.py:67 -msgid "HBAC service" +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 -msgid "HBAC service description" +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/hbacsvc.py:82 -msgid "" -"\n" -" Add a new HBAC service.\n" -" " +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/hbacsvc.py:85 -msgid "Added HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:659 +msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/hbacsvc.py:91 -msgid "" -"\n" -" Delete an existing HBAC service.\n" -" " +#: ipalib/plugins/dns.py:660 +msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/hbacsvc.py:94 -msgid "Deleted HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:665 +msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/hbacsvc.py:100 -msgid "" -"\n" -" Modify an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:666 +msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/hbacsvc.py:104 -msgid "Modified HBAC service \"%(value)s\"" +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/hbacsvc.py:110 -msgid "" -"\n" -" Search for HBAC services.\n" -" " +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" msgstr "" -#: ipalib/plugins/hbacsvc.py:114 -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "" -#: ipalib/plugins/hbacsvc.py:122 -msgid "" -"\n" -" Display information about an HBAC service.\n" -" " +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:19 -msgid "" -"\n" -"HBAC Service Groups\n" -"\n" -"HBAC service groups can contain any number of individual services,\n" -"or \"members\". Every group must have a description.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new HBAC service group:\n" -" ipa hbacsvcgroup-add --desc=\"login services\" login\n" -"\n" -" Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Add a new group to the \"login\" group:\n" -" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:51 -msgid "" -"\n" -" HBAC service group object.\n" -" " +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:64 -msgid "HBAC service Groups" +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:69 -msgid "Service group name" +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:76 -msgid "HBAC service group description" +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:84 -msgid "" -"\n" -" Add a new HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:87 -msgid "Added HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:93 -msgid "" -"\n" -" Delete an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:96 -msgid "Deleted HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:102 -msgid "" -"\n" -" Modify an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:724 +msgid "SOA class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:105 -msgid "Modified HBAC service group \"%(value)s\"" +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:111 -msgid "" -"\n" -" Search for an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:114 -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "" +#: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:122 -msgid "" -"\n" -" Display information about an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:130 -msgid "" -"\n" -" Add members to an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" msgstr "" -#: ipalib/plugins/hbacsvcgroup.py:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/host.py:20 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -"\n" -"A host can only be enrolled once. If a client has enrolled and needs to\n" -"be re-enrolled, the host entry must be removed and re-created. Note that\n" -"re-creating the host entry will result in all services for the host being\n" -"removed, and all SSL certificates associated with those services being\n" -"revoked.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:97 -msgid "" -"\n" -" Require at least one dot in the hostname (to support localhost.localdomain)\n" -" " +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" msgstr "" -#: ipalib/plugins/host.py:101 -msgid "Fully-qualified hostname required" +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/host.py:129 -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87 -msgid "Keytab" +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/host.py:185 -msgid "" -"\n" -" Verify that we have either an IPv4 or IPv6 address.\n" -" " +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/host.py:189 -msgid "invalid IP address" +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" +#: ipalib/plugins/dns.py:848 +msgid "Forward zones only" msgstr "" -#: ipalib/plugins/host.py:242 -msgid "Locality" +#: ipalib/plugins/dns.py:850 +msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" +#: ipalib/plugins/dns.py:869 +msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" +#: ipalib/plugins/dns.py:875 +msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:252 -msgid "Platform" +#: ipalib/plugins/dns.py:878 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/host.py:257 -msgid "Operating system" +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:258 -msgid "Host operating system and version (e.g. \"Fedora 9\")" +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" msgstr "" -#: ipalib/plugins/host.py:262 -msgid "User password" +#: ipalib/plugins/dns.py:923 +msgid "DNS resource records" msgstr "" -#: ipalib/plugins/host.py:263 -msgid "Password used in bulk enrollment" +#: ipalib/plugins/dns.py:927 +msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/host.py:266 -msgid "Generate a random password to be used in bulk enrollment" +#: ipalib/plugins/dns.py:928 +msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/host.py:271 -msgid "Random password" +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934 +msgid "Record name" msgstr "" -#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233 -msgid "Base-64 encoded server certificate" +#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940 +msgid "Time to live" msgstr "" -#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548 -msgid "Principal name" +#: ipalib/plugins/dns.py:944 +msgid "Class" msgstr "" -#: ipalib/plugins/host.py:306 -msgid "" -"\n" -" Add a new host.\n" -" " +#: ipalib/plugins/dns.py:945 +msgid "DNS class" msgstr "" -#: ipalib/plugins/host.py:311 -msgid "Added host \"%(value)s\"" +#: ipalib/plugins/dns.py:972 +#, python-format +msgid "" +"Reverse zone for PTR record should be a sub-zone of one the following fully " +"qualified domains: %s" msgstr "" -#: ipalib/plugins/host.py:316 -msgid "force host name even if not in DNS" +#: ipalib/plugins/dns.py:977 +#, python-format +msgid "Reverse zone %s requires exactly %d IP address components, %d given" msgstr "" -#: ipalib/plugins/host.py:319 -msgid "skip reverse DNS detection" +#: ipalib/plugins/dns.py:1149 +msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/host.py:322 -msgid "Add the host to DNS with this IP address" +#: ipalib/plugins/dns.py:1157 +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477 -msgid "DNS zone %(zone)s not found" +#: ipalib/plugins/dns.py:1210 +msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/host.py:413 -msgid "The host was added but the DNS update failed with: %(exc)s" +#: ipalib/plugins/dns.py:1250 +#, python-format +msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:422 -msgid "" -"\n" -" Delete a host.\n" -" " +#: ipalib/plugins/dns.py:1257 +msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/host.py:426 -msgid "Deleted host \"%(value)s\"" +#: ipalib/plugins/dns.py:1259 +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/host.py:431 -msgid "Remove entries from DNS" +#: ipalib/plugins/dns.py:1264 +msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/host.py:537 -msgid "" -"\n" -" Modify information about a host.\n" -" " +#: ipalib/plugins/dns.py:1291 +msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/host.py:542 -msgid "Modified host \"%(value)s\"" +#: ipalib/plugins/dns.py:1292 +msgid "Delete all?" msgstr "" -#: ipalib/plugins/host.py:549 -msgid "Kerberos principal name for this host" +#: ipalib/plugins/dns.py:1302 +msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/host.py:618 -msgid "" -"\n" -" Search for hosts.\n" -" " +#: ipalib/plugins/dns.py:1316 +#, python-format +msgid "Delete %s '%s'?" msgstr "" -#: ipalib/plugins/host.py:623 -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" - -#: ipalib/plugins/host.py:643 -msgid "" -"\n" -" Display information about a host.\n" -" " +#: ipalib/plugins/dns.py:1331 +#, python-format +msgid "%s record with value %s not found" msgstr "" -#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400 -msgid "file to store certificate in" +#: ipalib/plugins/dns.py:1345 +msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422 -msgid "Certificate stored in file '%(file)s'" +#: ipalib/plugins/dns.py:1360 +msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/host.py:684 -msgid "" -"\n" -" Disable the Kerberos key, SSL certificate and all services of a host.\n" -" " +#: ipalib/plugins/dns.py:1386 +msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/host.py:688 -msgid "Disabled host \"%(value)s\"" +#: ipalib/plugins/dns.py:1389 +#, python-format +msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/host.py:770 -msgid "" -"\n" -" Add hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1393 +msgid "Hostname" msgstr "" -#: ipalib/plugins/host.py:781 -msgid "" -"\n" -" Remove hosts that can manage this host.\n" -" " +#: ipalib/plugins/dns.py:1415 +#, python-format +msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/hostgroup.py:20 +#: ipalib/plugins/entitle.py:52 msgid "" "\n" -"Groups of hosts.\n" +"Entitlements\n" "\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" +"Manage entitlements for client machines\n" "\n" -"EXAMPLES:\n" +"Entitlements can be managed either by registering with an entitlement\n" +"server with a username and password or by manually importing entitlement\n" +"certificates. An entitlement certificate contains embedded information\n" +"such as the product being entitled, the quantity and the validity dates.\n" "\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"An entitlement server manages the number of client entitlements available.\n" +"To mark these entitlements as used by the IPA server you provide a quantity\n" +"and they are marked as consumed on the entitlement server.\n" "\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +" Register with an entitlement server:\n" +" ipa entitle-register consumer\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +" Import an entitlement certificate:\n" +" ipa entitle-import /home/user/ipaclient.pem\n" "\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +" Display current entitlements:\n" +" ipa entitle-status\n" "\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +" Retrieve details on entitlement certificates:\n" +" ipa entitle-get\n" "\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" +" Consume some entitlements from the entitlement server:\n" +" ipa entitle-consume 50\n" "\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipalib/plugins/hostgroup.py:55 -msgid "" +"The registration ID is a Unique Identifier (UUID). This ID will be\n" +"IMPORTED if you have used entitle-import.\n" "\n" -" Hostgroup object.\n" -" " -msgstr "" - -#: ipalib/plugins/hostgroup.py:78 -msgid "Host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:79 -msgid "Name of host-group" -msgstr "" - -#: ipalib/plugins/hostgroup.py:86 -msgid "A description of this host-group" +"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/hostgroup.py:94 -msgid "" -"\n" -" Add a new hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:183 +msgid "entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:98 -msgid "Added hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:184 +msgid "entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:104 -msgid "" -"\n" -" Delete a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:190 +msgid "Entitlements" msgstr "" -#: ipalib/plugins/hostgroup.py:108 -msgid "Deleted hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/hostgroup.py:114 -msgid "" -"\n" -" Modify a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/hostgroup.py:118 -msgid "Modified hostgroup \"%(value)s\"" +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +msgid "UUID" msgstr "" -#: ipalib/plugins/hostgroup.py:124 -msgid "" -"\n" -" Search for hostgroups.\n" -" " +#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 +#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331 +msgid "Product" msgstr "" -#: ipalib/plugins/hostgroup.py:128 -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" - -#: ipalib/plugins/hostgroup.py:136 -msgid "" -"\n" -" Display information about a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 +#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 +#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +msgid "Quantity" msgstr "" -#: ipalib/plugins/hostgroup.py:144 -msgid "" -"\n" -" Add members to a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 +#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 +#: ipalib/plugins/internal.py:322 +msgid "Consumed" msgstr "" -#: ipalib/plugins/hostgroup.py:152 -msgid "" -"\n" -" Remove members from a hostgroup.\n" -" " +#: ipalib/plugins/entitle.py:276 +msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/internal.py:22 -msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +#: ipalib/plugins/entitle.py:280 +#, python-format +msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/internal.py:36 -msgid "" -"\n" -" Export plugin meta-data for the webUI.\n" -" " +#: ipalib/plugins/entitle.py:378 +msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/internal.py:44 -msgid "Name of object to export" +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334 +msgid "Start" msgstr "" -#: ipalib/plugins/internal.py:47 -msgid "Name of method to export" +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325 +msgid "End" msgstr "" -#: ipalib/plugins/internal.py:52 -msgid "Dict of JSON encoded IPA Objects" +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178 +#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97 +msgid "Serial Number" msgstr "" -#: ipalib/plugins/internal.py:53 -msgid "Dict of JSON encoded IPA Methods" +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 +#: ipalib/plugins/entitle.py:623 +msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/internal.py:96 -msgid "Logged In As" +#: ipalib/plugins/entitle.py:456 +msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/internal.py:99 -msgid "Attribute" +#: ipalib/plugins/entitle.py:468 +msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/internal.py:102 -msgid "Add Automount Location" +#: ipalib/plugins/entitle.py:472 +msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/internal.py:103 -msgid "Automount Location Settings" +#: ipalib/plugins/entitle.py:476 +msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:106 -msgid "Add Automount Map" +#: ipalib/plugins/entitle.py:483 +msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/internal.py:109 -msgid "Add Automount Key" +#: ipalib/plugins/entitle.py:488 +msgid "Registration password" msgstr "" -#: ipalib/plugins/internal.py:112 -msgid "Unspecified" +#: ipalib/plugins/entitle.py:566 +msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/internal.py:113 -msgid "Key Compromise" +#: ipalib/plugins/entitle.py:598 +msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/internal.py:114 -msgid "CA Compromise" +#: ipalib/plugins/entitle.py:662 +msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/internal.py:115 -msgid "Affiliation Changed" +#: ipalib/plugins/entitle.py:666 +msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/internal.py:116 -msgid "Superseded" -msgstr "" - -#: ipalib/plugins/internal.py:117 -msgid "Cessation of Operation" +#: ipalib/plugins/group.py:26 +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add a list of users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1,test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/internal.py:118 -msgid "Certificate Hold" +#: ipalib/plugins/group.py:80 +msgid "group" msgstr "" -#: ipalib/plugins/internal.py:119 -msgid "Remove from CRL" +#: ipalib/plugins/group.py:81 +msgid "groups" msgstr "" -#: ipalib/plugins/internal.py:120 -msgid "Privilege Withdrawn" +#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192 +#: ipalib/plugins/sudorule.py:144 +msgid "User Groups" msgstr "" -#: ipalib/plugins/internal.py:121 -msgid "AA Compromise" +#: ipalib/plugins/group.py:101 +msgid "User Group" msgstr "" -#: ipalib/plugins/internal.py:122 -msgid "" -"To confirm your intention to revoke this certificate, select a reason from " -"the pull-down list, and click the \"Revoke\" button." +#: ipalib/plugins/group.py:109 +msgid "Group name" msgstr "" -#: ipalib/plugins/internal.py:124 -msgid "Note" +#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +msgid "Group description" msgstr "" -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" +#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250 +msgid "GID" msgstr "" -#: ipalib/plugins/internal.py:126 -msgid "" -"To confirm your intention to restore this certificate, click the \"Restore\"" -" button." +#: ipalib/plugins/group.py:121 +msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/internal.py:128 -msgid "Issued To" +#: ipalib/plugins/group.py:129 +msgid "Create a new group." msgstr "" -#: ipalib/plugins/internal.py:129 -msgid "Common Name" +#: ipalib/plugins/group.py:131 +#, python-format +msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:130 -msgid "Organization" +#: ipalib/plugins/group.py:136 +msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/internal.py:131 -msgid "Organizational Unit" +#: ipalib/plugins/group.py:153 +msgid "Delete group." msgstr "" -#: ipalib/plugins/internal.py:133 -msgid "Issued By" +#: ipalib/plugins/group.py:155 +#, python-format +msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:134 -msgid "Validity" +#: ipalib/plugins/group.py:183 +msgid "Modify a group." msgstr "" -#: ipalib/plugins/internal.py:135 -msgid "Issued On" +#: ipalib/plugins/group.py:185 +#, python-format +msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:136 -msgid "Expires On" +#: ipalib/plugins/group.py:190 +msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/internal.py:137 -msgid "Fingerprints" +#: ipalib/plugins/group.py:222 +msgid "Search for groups." msgstr "" -#: ipalib/plugins/internal.py:138 -msgid "SHA1 Fingerprint" -msgstr "" +#: ipalib/plugins/group.py:227 +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:139 -msgid "MD5 Fingerprint" +#: ipalib/plugins/group.py:233 +msgid "search for private groups" msgstr "" -#: ipalib/plugins/internal.py:140 -msgid "Enter the Base64-encoded CSR below" +#: ipalib/plugins/group.py:263 +msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/internal.py:141 -msgid "Valid Certificate Present" +#: ipalib/plugins/group.py:269 +msgid "Add members to a group." msgstr "" -#: ipalib/plugins/internal.py:142 -msgid "New Certificate" +#: ipalib/plugins/group.py:275 +msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/internal.py:143 -msgid "Certificate Revoked" +#: ipalib/plugins/group.py:281 +msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/internal.py:144 -msgid "No Valid Certificate" +#: ipalib/plugins/group.py:284 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:145 -msgid "Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:305 +msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:311 +msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/group.py:330 +msgid "Not a managed group" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/hbacrule.py:25 +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts and from where. You\n" +"can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users, target hosts, and source\n" +"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n" +" anywhere:\n" +" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Display the properties of a named HBAC rule:\n" +" ipa hbacrule-show test1\n" +"\n" +" Create a rule for a specific service. This lets the user john access\n" +" the sshd service on any machine from any machine:\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Create a rule for a new service group. This lets the user john access\n" +" the FTP service on any machine from any machine:\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" +" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" Disable a named HBAC rule:\n" +" ipa hbacrule-disable test1\n" +"\n" +" Remove a named HBAC rule:\n" +" ipa hbacrule-del allow_server\n" msgstr "" -#: ipalib/plugins/internal.py:152 -msgid "Name" +#: ipalib/plugins/hbacrule.py:89 +msgid "Host-based access control commands" msgstr "" -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" +#: ipalib/plugins/hbacrule.py:93 +msgid "The deny type has been deprecated." msgstr "" -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" +#: ipalib/plugins/hbacrule.py:112 +msgid "HBAC rule" msgstr "" -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" +#: ipalib/plugins/hbacrule.py:113 +msgid "HBAC rules" msgstr "" -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" +#: ipalib/plugins/hbacrule.py:131 +msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/internal.py:163 -msgid "Resource" +#: ipalib/plugins/hbacrule.py:132 +msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/internal.py:165 -msgid "Data" +#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98 +msgid "Rule name" msgstr "" -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" +#: ipalib/plugins/hbacrule.py:142 +msgid "Rule type (allow)" msgstr "" -#: ipalib/plugins/internal.py:169 -msgid "Add Group" +#: ipalib/plugins/hbacrule.py:143 +msgid "Rule type" msgstr "" -#: ipalib/plugins/internal.py:170 -msgid "Group Settings" +#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126 +#: ipalib/plugins/sudorule.py:111 +msgid "User category" msgstr "" -#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206 -msgid "Is this a POSIX group?" +#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127 +#: ipalib/plugins/sudorule.py:112 +msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" +#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132 +#: ipalib/plugins/sudorule.py:117 +msgid "Host category" msgstr "" -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" +#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133 +#: ipalib/plugins/sudorule.py:118 +msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" +#: ipalib/plugins/hbacrule.py:165 +msgid "Source host category" msgstr "" -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" +#: ipalib/plugins/hbacrule.py:166 +msgid "Source host category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" +#: ipalib/plugins/hbacrule.py:171 +msgid "Service category" msgstr "" -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" +#: ipalib/plugins/hbacrule.py:172 +msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" +#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106 +msgid "Enabled" msgstr "" -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" +#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140 +#: ipalib/plugins/user.py:168 +msgid "Users" msgstr "" -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" +#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248 +#: ipalib/plugins/sudorule.py:148 +msgid "Hosts" msgstr "" -#: ipalib/plugins/internal.py:183 -msgid "Accessing" +#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74 +#: ipalib/plugins/sudorule.py:152 +msgid "Host Groups" msgstr "" -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" +#: ipalib/plugins/hbacrule.py:204 +msgid "Source Hosts" msgstr "" -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" +#: ipalib/plugins/hbacrule.py:208 +msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/internal.py:186 -msgid "Via Service" +#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359 +#: ipalib/plugins/service.py:222 +msgid "Services" msgstr "" -#: ipalib/plugins/internal.py:187 -msgid "Any Service" +#: ipalib/plugins/hbacrule.py:216 +msgid "Service Groups" msgstr "" -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" +#: ipalib/plugins/hbacrule.py:225 +msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:189 -msgid "From" +#: ipalib/plugins/hbacrule.py:227 +#, python-format +msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" +#: ipalib/plugins/hbacrule.py:240 +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:199 -msgid "Add Host" +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" +#: ipalib/plugins/hbacrule.py:248 +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" +#: ipalib/plugins/hbacrule.py:270 +msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "" +#: ipalib/plugins/hbacrule.py:273 +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" +#: ipalib/plugins/hbacrule.py:280 +msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" +#: ipalib/plugins/hbacrule.py:286 +msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" +#: ipalib/plugins/hbacrule.py:288 +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" +#: ipalib/plugins/hbacrule.py:313 +msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" +#: ipalib/plugins/hbacrule.py:315 +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" +#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387 +msgid "Access time" msgstr "" -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" +#: ipalib/plugins/hbacrule.py:421 +msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" +#: ipalib/plugins/hbacrule.py:440 +msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" +#: ipalib/plugins/hbacrule.py:449 +msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." +#: ipalib/plugins/hbacrule.py:468 +msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" +#: ipalib/plugins/hbacrule.py:477 +msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:215 -msgid "Are you sure you want to unprovision this host?" +#: ipalib/plugins/hbacrule.py:524 +msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268 -msgid "Unprovision" +#: ipalib/plugins/hbacrule.py:558 +msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:219 -msgid "Add Host Group" +#: ipalib/plugins/hbacrule.py:577 +msgid "Remove service and service groups from an HBAC rule." msgstr "" -#: ipalib/plugins/internal.py:220 -msgid "Host Group Settings" +#: ipalib/plugins/hbacsvc.py:27 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" +#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49 +msgid "Host based access control commands" msgstr "" -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 +msgid "HBAC service" msgstr "" -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" msgstr "" -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" msgstr "" -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -msgid "Identity" +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" msgstr "" -#: ipalib/plugins/internal.py:233 -msgid "Target" +#: ipalib/plugins/hbacsvc.py:72 +msgid "Service name" msgstr "" -#: ipalib/plugins/internal.py:235 -msgid "By Subtree" +#: ipalib/plugins/hbacsvc.py:80 +msgid "HBAC service description" msgstr "" -#: ipalib/plugins/internal.py:236 -msgid "Target Group" +#: ipalib/plugins/hbacsvc.py:88 +msgid "Add a new HBAC service." msgstr "" -#: ipalib/plugins/internal.py:237 -msgid "Object By Type" +#: ipalib/plugins/hbacsvc.py:90 +#, python-format +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:238 -msgid "Permission with invalid target specification" +#: ipalib/plugins/hbacsvc.py:96 +msgid "Delete an existing HBAC service." msgstr "" -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" +#: ipalib/plugins/hbacsvc.py:98 +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" +#: ipalib/plugins/hbacsvc.py:104 +msgid "Modify an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" +#: ipalib/plugins/hbacsvc.py:106 +#, python-format +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" +#: ipalib/plugins/hbacsvc.py:112 +msgid "Search for HBAC services." msgstr "" -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "" +#: ipalib/plugins/hbacsvc.py:115 +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:250 -msgid "Role Settings" +#: ipalib/plugins/hbacsvc.py:122 +msgid "Display information about an HBAC service." msgstr "" -#: ipalib/plugins/internal.py:253 -msgid "Add Self Service Definition" +#: ipalib/plugins/hbacsvcgroup.py:24 +msgid "" +"\n" +"HBAC Service Groups\n" +"\n" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" +"\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Add a new group to the \"login\" group:\n" +" ipa hbacsvcgroup-add --desc=\"switch users\" login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +"\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" -#: ipalib/plugins/internal.py:256 -msgid "Add Service" +#: ipalib/plugins/hbacsvcgroup.py:56 +msgid "HBAC service group" msgstr "" -#: ipalib/plugins/internal.py:257 -msgid "Service Certificate" +#: ipalib/plugins/hbacsvcgroup.py:57 +msgid "HBAC service groups" msgstr "" -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" +#: ipalib/plugins/hbacsvcgroup.py:65 +msgid "HBAC Service Groups" msgstr "" -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" +#: ipalib/plugins/hbacsvcgroup.py:66 +msgid "HBAC Service Group" msgstr "" -#: ipalib/plugins/internal.py:261 -msgid "Service" +#: ipalib/plugins/hbacsvcgroup.py:71 +msgid "Service group name" msgstr "" -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" +#: ipalib/plugins/hbacsvcgroup.py:78 +msgid "HBAC service group description" msgstr "" -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" +#: ipalib/plugins/hbacsvcgroup.py:86 +msgid "Add a new HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" +#: ipalib/plugins/hbacsvcgroup.py:88 +#, python-format +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" +#: ipalib/plugins/hbacsvcgroup.py:94 +msgid "Delete an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" +#: ipalib/plugins/hbacsvcgroup.py:96 +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" +#: ipalib/plugins/hbacsvcgroup.py:102 +msgid "Modify an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:287 -msgid "Access this host" +#: ipalib/plugins/hbacsvcgroup.py:104 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" +#: ipalib/plugins/hbacsvcgroup.py:110 +msgid "Search for an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:291 -msgid "Any Command" +#: ipalib/plugins/hbacsvcgroup.py:113 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" + +#: ipalib/plugins/hbacsvcgroup.py:120 +msgid "Display information about an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" +#: ipalib/plugins/hbacsvcgroup.py:126 +msgid "Add members to an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:293 -msgid "As Whom" +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/internal.py:294 -msgid "Any Group" +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from where.\n" +"You can use HBAC to control which users or groups on a source host can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming from source host to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --srchost= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +"\n" +" --user, --srchost, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules _and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" matched: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified rules:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" notmatched: my-second-rule\n" +" notmatched: my-third-rule\n" +" notmatched: myrule\n" +" notmatched: new-rule\n" +" matched: allow_all\n" +"\n" +msgstr "" + +#: ipalib/plugins/hbactest.py:161 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipalib/plugins/hbactest.py:165 +msgid "Matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:166 +msgid "Not matched rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:167 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipalib/plugins/hbactest.py:168 +msgid "Result of simulation" +msgstr "" + +#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/passwd.py:69 +msgid "User name" msgstr "" -#: ipalib/plugins/internal.py:295 -msgid "Specified Groups" +#: ipalib/plugins/hbactest.py:179 +msgid "Source host" msgstr "" -#: ipalib/plugins/internal.py:297 -msgid "External" +#: ipalib/plugins/hbactest.py:183 +msgid "Target host" msgstr "" -#: ipalib/plugins/internal.py:300 -msgid "Add User" +#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430 +#: ipalib/plugins/service.py:223 +msgid "Service" msgstr "" -#: ipalib/plugins/internal.py:301 -msgid "Account Settings" +#: ipalib/plugins/hbactest.py:191 +msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" +#: ipalib/plugins/hbactest.py:196 +msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" +#: ipalib/plugins/hbactest.py:200 +msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" +#: ipalib/plugins/hbactest.py:204 +msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" +#: ipalib/plugins/hbactest.py:266 +msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" +#: ipalib/plugins/hbactest.py:342 +#, python-format +msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" +#: ipalib/plugins/host.py:42 +msgid "" +"\n" +"Hosts/Machines\n" +"\n" +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" +"\n" +"ENROLLMENT:\n" +"\n" +"There are three enrollment scenarios when enrolling a new client:\n" +"\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +"\n" +"A host can only be enrolled once. If a client has enrolled and needs to\n" +"be re-enrolled, the host entry must be removed and re-created. Note that\n" +"re-creating the host entry will result in all services for the host being\n" +"removed, and all SSL certificates associated with those services being\n" +"revoked.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" +#: ipalib/plugins/host.py:101 +msgid "Fully-qualified hostname required" msgstr "" -#: ipalib/plugins/internal.py:311 -msgid "Reset Password" +#: ipalib/plugins/host.py:142 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/internal.py:312 -msgid "New Password" +#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/internal.py:313 -msgid "Repeat Password" +#: ipalib/plugins/host.py:207 +msgid "invalid IP address" msgstr "" -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/internal.py:315 -msgid "Passwords must match" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/internal.py:319 -msgid "Add" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" -#: ipalib/plugins/internal.py:320 -msgid "Add and Add Another" +#: ipalib/plugins/host.py:257 +msgid "Host name" msgstr "" -#: ipalib/plugins/internal.py:321 -msgid "Add and Edit" +#: ipalib/plugins/host.py:264 +msgid "A description of this host" msgstr "" -#: ipalib/plugins/internal.py:322 -msgid "Add and Close" +#: ipalib/plugins/host.py:268 +msgid "Locality" msgstr "" -#: ipalib/plugins/internal.py:323 -msgid "Add Many" +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/internal.py:324 -msgid "Back to List" +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/internal.py:325 -msgid "Cancel" +#: ipalib/plugins/host.py:278 +msgid "Platform" msgstr "" -#: ipalib/plugins/internal.py:326 -msgid "Close" +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/internal.py:327 -msgid "Enroll" +#: ipalib/plugins/host.py:283 +msgid "Operating system" msgstr "" -#: ipalib/plugins/internal.py:328 -msgid "Find" +#: ipalib/plugins/host.py:284 +msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/internal.py:329 -msgid "Get" +#: ipalib/plugins/host.py:288 +msgid "User password" msgstr "" -#: ipalib/plugins/internal.py:330 -msgid "Issue" +#: ipalib/plugins/host.py:289 +msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:331 -msgid "OK" +#: ipalib/plugins/host.py:292 +msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/internal.py:332 -msgid "Reset" +#: ipalib/plugins/host.py:297 +msgid "Random password" msgstr "" -#: ipalib/plugins/internal.py:333 -msgid "Delete" +#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236 +msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/internal.py:334 -msgid "Restore" +#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621 +msgid "Principal name" msgstr "" -#: ipalib/plugins/internal.py:335 -msgid "Retry" +#: ipalib/plugins/host.py:366 +msgid "Add a new host." msgstr "" -#: ipalib/plugins/internal.py:336 -msgid "Revoke" +#: ipalib/plugins/host.py:369 +#, python-format +msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "Update" +#: ipalib/plugins/host.py:374 +msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/internal.py:338 -msgid "View" +#: ipalib/plugins/host.py:377 +msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/internal.py:341 -msgid "Available" +#: ipalib/plugins/host.py:380 +msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/internal.py:342 -msgid "This page has unsaved changes. Please save or revert." +#: ipalib/plugins/host.py:381 +msgid "IP Address" msgstr "" -#: ipalib/plugins/internal.py:343 -msgid "Dirty" +#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552 +#, python-format +msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/internal.py:344 -msgid "Hide already enrolled." +#: ipalib/plugins/host.py:481 +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/internal.py:345 -msgid "Select ${entity} to be removed." +#: ipalib/plugins/host.py:499 +msgid "Delete a host." msgstr "" -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." +#: ipalib/plugins/host.py:501 +#, python-format +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:347 -msgid "Prospective" +#: ipalib/plugins/host.py:506 +msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/internal.py:350 -msgid "Managed by" +#: ipalib/plugins/host.py:612 +msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/internal.py:351 -msgid "Member" +#: ipalib/plugins/host.py:615 +#, python-format +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:352 -msgid "Indirect Member" +#: ipalib/plugins/host.py:622 +msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/internal.py:353 -msgid "Member Of" +#: ipalib/plugins/host.py:634 +msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/internal.py:354 -msgid "Indirect Member Of" +#: ipalib/plugins/host.py:708 +msgid "Search for hosts." msgstr "" -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" -msgstr "" +#: ipalib/plugins/host.py:712 +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" -#: ipalib/plugins/internal.py:358 -msgid "Search" +#: ipalib/plugins/host.py:742 +msgid "Display information about a host." msgstr "" -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" +#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396 +msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/internal.py:363 -msgid "Select All" +#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414 +#, python-format +msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/internal.py:364 -msgid "Unselect All" +#: ipalib/plugins/host.py:786 +msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/internal.py:365 -msgid "Are you sure you want to delete selected entries?" +#: ipalib/plugins/host.py:789 +#, python-format +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:366 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." +#: ipalib/plugins/host.py:876 +msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:370 -msgid "General" +#: ipalib/plugins/host.py:890 +msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/internal.py:371 -msgid "Identity Settings" +#: ipalib/plugins/hostgroup.py:25 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/internal.py:372 -msgid "${entity} ${primary_key} Settings" +#: ipalib/plugins/hostgroup.py:60 +msgid "host group" msgstr "" -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" +#: ipalib/plugins/hostgroup.py:61 +msgid "host groups" msgstr "" -#: ipalib/plugins/internal.py:377 -msgid "Policy" +#: ipalib/plugins/hostgroup.py:75 +msgid "Host Group" msgstr "" -#: ipalib/plugins/internal.py:378 -msgid "Audit" +#: ipalib/plugins/hostgroup.py:80 +msgid "Host-group" msgstr "" -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" +#: ipalib/plugins/hostgroup.py:81 +msgid "Name of host-group" msgstr "" -#: ipalib/plugins/internal.py:380 -msgid "Sudo" +#: ipalib/plugins/hostgroup.py:88 +msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/internal.py:381 -msgid "Host Based Access Control" +#: ipalib/plugins/hostgroup.py:114 +msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/internal.py:382 -msgid "Role Based Access Control" +#: ipalib/plugins/hostgroup.py:116 +#, python-format +msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:383 -msgid "Automount" +#: ipalib/plugins/hostgroup.py:131 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:153 +msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:155 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" +#: ipalib/plugins/hostgroup.py:161 +msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" +#: ipalib/plugins/hostgroup.py:163 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" +#: ipalib/plugins/hostgroup.py:173 +msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/internal.py:395 -msgid "" -"Your Kerberos ticket is no longer valid. Please run kinit and then click " -"'Retry'. If this is your first time running the IPA Web UI follow these directions to " -"configure your browser." +#: ipalib/plugins/hostgroup.py:177 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" + +#: ipalib/plugins/hostgroup.py:191 +msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/internal.py:399 -msgid "Dict of I18N messages" +#: ipalib/plugins/hostgroup.py:201 +msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:20 -msgid "" -"\n" -"Backend plugin for Kerberos.\n" -"\n" -"This wraps the python-kerberos and python-krbV bindings.\n" +#: ipalib/plugins/hostgroup.py:211 +msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/kerberos.py:35 -msgid "" -"\n" -" Kerberos backend plugin.\n" -"\n" -" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n" -" bindings also). Importantly, this plugin does correct Unicode\n" -" encoding/decoding of values going-to/coming-from the bindings.\n" -" " +#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 +msgid "Name of object to export" msgstr "" -#: ipalib/plugins/kerberos.py:44 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56 +msgid "Name of method to export" msgstr "" -#: ipalib/plugins/kerberos.py:50 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the default credential cache.\n" -" " +#: ipalib/plugins/internal.py:59 +msgid "Name of command to export" msgstr "" -#: ipalib/plugins/kerberos.py:56 -msgid "" -"\n" -" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:64 +msgid "Dict of JSON encoded IPA Objects" msgstr "" -#: ipalib/plugins/kerberos.py:62 -msgid "" -"\n" -" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n" -" " +#: ipalib/plugins/internal.py:65 +msgid "Dict of JSON encoded IPA Methods" msgstr "" -#: ipalib/plugins/kerberos.py:68 -msgid "" -"\n" -" Return the default ccache file name.\n" -"\n" -" This will return something like '/tmp/krb5cc_500'.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" -#: ipalib/plugins/kerberos.py:79 +#: ipalib/plugins/internal.py:147 msgid "" -"\n" -" Return the principal name in default credential cache.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'. If no credential\n" -" cache exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +"Your Kerberos ticket is no longer valid. Please run kinit and then click " +"'Retry'. If this is your first time running the IPA Web UI follow these directions to " +"configure your browser." msgstr "" -#: ipalib/plugins/kerberos.py:91 -msgid "" -"\n" -" Return the realm from the default credential cache.\n" -"\n" -" This will return something like 'EXAMPLE.COM'. If no credential cache\n" -" exists for the invoking user, None is returned.\n" -"\n" -" This cannot return anything meaningful if used in the server as a\n" -" request is processed.\n" -" " +#: ipalib/plugins/internal.py:148 +msgid "Kerberos ticket no longer valid." msgstr "" -#: ipalib/plugins/kerberos.py:103 -msgid "" -"\n" -" Return the principal from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'admin@EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:153 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/kerberos.py:111 -msgid "" -"\n" -" Return the realm from credential cache file at ``ccname``.\n" -"\n" -" This will return something like 'EXAMPLE.COM'.\n" -" " +#: ipalib/plugins/internal.py:154 +msgid "Add RunAs Groups into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:19 -msgid "" -"\n" -"Kerberos ticket policy\n" -"\n" -"There is a single Kerberos ticket policy. This policy defines the\n" -"maximum ticket lifetime and the maximum renewal age, the period during\n" -"which the ticket is renewable.\n" -"\n" -"You can also create a per-user ticket policy by specifying the user login.\n" -"\n" -"For changes to the global policy to take effect, restarting the KDC service\n" -"is required, which can be achieved using:\n" -"\n" -"service krb5kdc restart\n" -"\n" -"Changes to per-user policies take effect immediately for newly requested\n" -"tickets (e.g. when the user next runs kinit).\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current Kerberos ticket policy:\n" -" ipa krbtpolicy-show\n" -"\n" -" Reset the policy to the default:\n" -" ipa krbtpolicy-reset\n" -"\n" -" Modify the policy to 8 hours max life, 1-day max renewal:\n" -" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" -"\n" -" Display effective Kerberos ticket policy for user 'admin':\n" -" ipa krbtpolicy-show admin\n" -"\n" -" Reset per-user policy for user 'admin':\n" -" ipa krbtpolicy-reset admin\n" -"\n" -" Modify per-user policy for user 'admin':\n" -" ipa krbtpolicy-mod admin --maxlife=3600\n" +#: ipalib/plugins/internal.py:155 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:71 -msgid "" -"\n" -" Kerberos Ticket Policy object\n" -" " +#: ipalib/plugins/internal.py:156 +msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:79 -msgid "Kerberos Ticket Policy" +#: ipalib/plugins/internal.py:157 +msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53 -msgid "User name" +#: ipalib/plugins/internal.py:158 +msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:85 -msgid "Manage ticket policy for specific user" +#: ipalib/plugins/internal.py:159 +msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:90 -msgid "Max life" +#: ipalib/plugins/internal.py:160 +msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:91 -msgid "Maximum ticket life (seconds)" +#: ipalib/plugins/internal.py:162 +msgid "Direct Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:96 -msgid "Max renew" +#: ipalib/plugins/internal.py:163 +msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/krbtpolicy.py:97 -msgid "Maximum renewable age (seconds)" +#: ipalib/plugins/internal.py:164 +msgid "No entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:111 -msgid "" -"\n" -" Modify Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:165 +msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/krbtpolicy.py:125 -msgid "" -"\n" -" Display the current Kerberos ticket policy.\n" -" " +#: ipalib/plugins/internal.py:167 +msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/krbtpolicy.py:149 -msgid "" -"\n" -" Reset Kerberos ticket policy to the default values.\n" -" " +#: ipalib/plugins/internal.py:168 +msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:19 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user and\n" -" group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +#: ipalib/plugins/internal.py:169 +msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:78 -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +#: ipalib/plugins/internal.py:170 +msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:79 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." +#: ipalib/plugins/internal.py:171 +msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:175 -msgid "" -"\n" -" Convert usernames in member attributes to work in IPA.\n" -" " +#: ipalib/plugins/internal.py:172 +msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:220 -msgid "Invalid LDAP URI." +#: ipalib/plugins/internal.py:173 +msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/migration.py:225 -msgid "" -"\n" -" Migrate users and groups from DS to IPA.\n" -" " +#: ipalib/plugins/internal.py:174 +msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/migration.py:266 -msgid "LDAP URI" +#: ipalib/plugins/internal.py:176 +msgid "Show Results" msgstr "" -#: ipalib/plugins/migration.py:267 -msgid "LDAP URI of DS server to migrate from" +#: ipalib/plugins/internal.py:179 +msgid "Add" msgstr "" -#: ipalib/plugins/migration.py:272 -msgid "bind password" +#: ipalib/plugins/internal.py:180 +msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/migration.py:279 -msgid "Bind DN" +#: ipalib/plugins/internal.py:181 +msgid "Add and Close" msgstr "" -#: ipalib/plugins/migration.py:285 -msgid "User container" +#: ipalib/plugins/internal.py:182 +msgid "Add and Edit" msgstr "" -#: ipalib/plugins/migration.py:286 -msgid "RDN of container for users in DS" +#: ipalib/plugins/internal.py:183 +msgid "Add Many" msgstr "" -#: ipalib/plugins/migration.py:292 -msgid "Group container" +#: ipalib/plugins/internal.py:184 +msgid "Cancel" msgstr "" -#: ipalib/plugins/migration.py:293 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/internal.py:185 +msgid "Close" msgstr "" -#: ipalib/plugins/migration.py:299 -msgid "User object class" +#: ipalib/plugins/internal.py:186 +msgid "Find" msgstr "" -#: ipalib/plugins/migration.py:300 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/internal.py:187 +msgid "Get" msgstr "" -#: ipalib/plugins/migration.py:306 -msgid "Group object class" +#: ipalib/plugins/internal.py:188 +msgid "Issue" msgstr "" -#: ipalib/plugins/migration.py:307 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/internal.py:189 +msgid "OK" msgstr "" -#: ipalib/plugins/migration.py:313 -msgid "LDAP schema" +#: ipalib/plugins/internal.py:190 +msgid "Delete" msgstr "" -#: ipalib/plugins/migration.py:314 -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" +#: ipalib/plugins/internal.py:191 +msgid "Reset" msgstr "" -#: ipalib/plugins/migration.py:320 -msgid "" -"Continuous operation mode. Errors are reported but the process continues" +#: ipalib/plugins/internal.py:192 +msgid "Restore" msgstr "" -#: ipalib/plugins/migration.py:328 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/internal.py:193 +msgid "Retry" msgstr "" -#: ipalib/plugins/migration.py:332 -msgid "Lists of objects that could not be migrated; categorized by type." +#: ipalib/plugins/internal.py:194 +msgid "Revoke" msgstr "" -#: ipalib/plugins/migration.py:336 -msgid "False if migration mode was disabled." +#: ipalib/plugins/internal.py:195 +msgid "Update" msgstr "" -#: ipalib/plugins/migration.py:340 -msgid "comma-separated list of %s to exclude from migration" +#: ipalib/plugins/internal.py:196 +msgid "View" msgstr "" -#: ipalib/plugins/migration.py:342 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" +#: ipalib/plugins/internal.py:199 +msgid "Collapse All" msgstr "" -#: ipalib/plugins/migration.py:347 -msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +#: ipalib/plugins/internal.py:200 +msgid "Expand All" msgstr "" -#: ipalib/plugins/migration.py:350 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." +#: ipalib/plugins/internal.py:201 +msgid "General" msgstr "" -#: ipalib/plugins/migration.py:358 -msgid "" -"\n" -" Call get_options of the baseclass and add \"exclude\" options\n" -" for each type of object being migrated.\n" -" " +#: ipalib/plugins/internal.py:202 +msgid "Identity Settings" msgstr "" -#: ipalib/plugins/migration.py:375 -msgid "" -"\n" -" Convert all \"exclude\" option values to lower-case.\n" -"\n" -" Also, empty List parameters are converted to None, but the migration\n" -" plugin doesn't like that - convert back to empty lists.\n" -" " +#: ipalib/plugins/internal.py:203 +msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/migration.py:399 -msgid "" -"\n" -" Migrate objects from DS to LDAP.\n" -" " +#: ipalib/plugins/internal.py:204 +msgid "Back to Top" msgstr "" -#: ipalib/plugins/migration.py:425 -msgid "Container for %(container)s not found" +#: ipalib/plugins/internal.py:207 +msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/misc.py:20 -msgid "" -"\n" -"Misc plug-ins\n" +#: ipalib/plugins/internal.py:208 +msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/misc.py:36 -msgid "Show environment variables" +#: ipalib/plugins/internal.py:209 +msgid "Available" msgstr "" -#: ipalib/plugins/misc.py:38 -msgid "%(count)d variables" +#: ipalib/plugins/internal.py:210 +msgid "Some operations failed." msgstr "" -#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 -msgid "" -"retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/internal.py:211 +msgid "Operations Error" msgstr "" -#: ipalib/plugins/misc.py:61 -msgid "Total number of variables env (>= count)" +#: ipalib/plugins/internal.py:212 +msgid "Confirmation" msgstr "" -#: ipalib/plugins/misc.py:66 -msgid "Number of variables returned (<= total)" +#: ipalib/plugins/internal.py:213 +msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/misc.py:106 -msgid "Show all loaded plugins" +#: ipalib/plugins/internal.py:214 +msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/misc.py:108 -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" +#: ipalib/plugins/internal.py:215 +msgid "Hide details" +msgstr "" -#: ipalib/plugins/misc.py:126 -msgid "Number of plugins loaded" +#: ipalib/plugins/internal.py:216 +msgid "Prospective" msgstr "" -#: ipalib/plugins/netgroup.py:20 -msgid "" -"\n" -"Netgroups\n" -"\n" -"A netgroup is a group used for permission checking. It can contain both\n" -"user and host values.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new netgroup:\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" -"\n" -" Remove a member from the netgroup:\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Display information about a netgroup:\n" -" ipa netgroup-show admins\n" -"\n" -" Delete a netgroup:\n" -" ipa netgroup-del admins\n" +#: ipalib/plugins/internal.py:217 +msgid "Redirection" msgstr "" -#: ipalib/plugins/netgroup.py:59 -msgid "Member Host" +#: ipalib/plugins/internal.py:218 +msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/netgroup.py:67 -msgid "" -"\n" -" Netgroup object.\n" -" " +#: ipalib/plugins/internal.py:219 +msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/netgroup.py:98 -msgid "Netgroups" +#: ipalib/plugins/internal.py:220 +msgid "Show details" msgstr "" -#: ipalib/plugins/netgroup.py:103 -msgid "Netgroup name" +#: ipalib/plugins/internal.py:221 +msgid "Validation error" msgstr "" -#: ipalib/plugins/netgroup.py:110 -msgid "Netgroup description" +#: ipalib/plugins/internal.py:222 +msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/netgroup.py:114 -msgid "NIS domain name" +#: ipalib/plugins/internal.py:226 +msgid "HTTP Error" msgstr "" -#: ipalib/plugins/netgroup.py:119 -msgid "IPA unique ID" +#: ipalib/plugins/internal.py:227 +msgid "Internal Error" msgstr "" -#: ipalib/plugins/netgroup.py:140 -msgid "" -"\n" -" Add a new netgroup.\n" -" " +#: ipalib/plugins/internal.py:228 +msgid "IPA Error" msgstr "" -#: ipalib/plugins/netgroup.py:144 -msgid "Added netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:229 +msgid "No response" msgstr "" -#: ipalib/plugins/netgroup.py:153 -msgid "" -"\n" -" Delete a netgroup.\n" -" " +#: ipalib/plugins/internal.py:230 +msgid "Unknown Error" msgstr "" -#: ipalib/plugins/netgroup.py:156 -msgid "Deleted netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:231 +msgid "URL" msgstr "" -#: ipalib/plugins/netgroup.py:162 -msgid "" -"\n" -" Modify a netgroup.\n" -" " +#: ipalib/plugins/internal.py:234 +msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/netgroup.py:166 -msgid "Modified netgroup \"%(value)s\"" +#: ipalib/plugins/internal.py:235 +msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/netgroup.py:180 -msgid "" -"\n" -" Search for a netgroup.\n" -" " +#: ipalib/plugins/internal.py:236 +msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/netgroup.py:185 -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:239 +msgid "Settings" +msgstr "" -#: ipalib/plugins/netgroup.py:213 -msgid "" -"\n" -" Display information about a netgroup.\n" -" " +#: ipalib/plugins/internal.py:240 +msgid "Search" msgstr "" -#: ipalib/plugins/netgroup.py:222 -msgid "" -"\n" -" Add members to a netgroup.\n" -" " +#: ipalib/plugins/internal.py:242 +msgid "False" msgstr "" -#: ipalib/plugins/netgroup.py:258 -msgid "" -"\n" -" Remove members from a netgroup.\n" -" " +#: ipalib/plugins/internal.py:244 +msgid "Logged In As" msgstr "" -#: ipalib/plugins/passwd.py:19 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" +#: ipalib/plugins/internal.py:248 +msgid "Attribute" msgstr "" -#: ipalib/plugins/passwd.py:46 -msgid "" -"\n" -" Set a user's password\n" -" " +#: ipalib/plugins/internal.py:253 +msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/passwd.py:64 -msgid "Changed password for \"%(value)s\"" +#: ipalib/plugins/internal.py:256 +msgid "Map Type" msgstr "" -#: ipalib/plugins/passwd.py:67 -msgid "" -"\n" -" Execute the passwd operation.\n" -"\n" -" The dn should not be passed as a keyword argument as it is constructed\n" -" by this method.\n" -"\n" -" Returns the entry\n" -"\n" -" :param principal: The login name or principal of the user\n" -" :param password: the new password\n" -" " +#: ipalib/plugins/internal.py:257 +msgid "Direct" msgstr "" -#: ipalib/plugins/permission.py:19 -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add or delete.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. add - add a new entry to the tree\n" -"4. delete - delete an existing entry\n" -"5. all - all permissions are granted\n" -"\n" -"Read permission is granted for most attributes by default so the read\n" -"permission is not expected to be used very often.\n" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -"\n" -"There are a number of allowed targets:\n" -"1. type: a type of object (user, group, etc).\n" -"2. memberof: a member of a group or hostgroup\n" -"3. filter: an LDAP filter\n" -"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" -" super-set of the \"type\" target.\n" -"5. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership)\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +#: ipalib/plugins/internal.py:258 +msgid "Indirect" msgstr "" -#: ipalib/plugins/permission.py:84 -msgid "Permission Type" +#: ipalib/plugins/internal.py:261 +msgid "AA Compromise" msgstr "" -#: ipalib/plugins/permission.py:89 -msgid "" -"\n" -" Permission object.\n" -" " +#: ipalib/plugins/internal.py:262 +msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/permission.py:112 -msgid "Permission name" +#: ipalib/plugins/internal.py:263 +msgid "CA Compromise" msgstr "" -#: ipalib/plugins/permission.py:119 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/internal.py:264 +msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/permission.py:132 -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +#: ipalib/plugins/internal.py:265 +msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/permission.py:138 -msgid "Member of group" +#: ipalib/plugins/internal.py:266 +msgid "Common Name" msgstr "" -#: ipalib/plugins/permission.py:139 -msgid "Target members of a group" +#: ipalib/plugins/internal.py:267 +msgid "Enter the Base64-encoded CSR below" msgstr "" -#: ipalib/plugins/permission.py:151 -msgid "Subtree to apply permissions to" +#: ipalib/plugins/internal.py:268 +msgid "Expires On" msgstr "" -#: ipalib/plugins/permission.py:157 -msgid "User group to apply permissions to" +#: ipalib/plugins/internal.py:269 +msgid "Fingerprints" msgstr "" -#: ipalib/plugins/permission.py:177 -msgid "" -"\n" -" Add a new permission.\n" -" " +#: ipalib/plugins/internal.py:270 +msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/permission.py:181 -msgid "Added permission \"%(value)s\"" +#: ipalib/plugins/internal.py:271 +msgid "Issued By" msgstr "" -#: ipalib/plugins/permission.py:236 -msgid "" -"\n" -" Delete a permission.\n" -" " +#: ipalib/plugins/internal.py:272 +msgid "Issued On" msgstr "" -#: ipalib/plugins/permission.py:240 -msgid "Deleted permission \"%(value)s\"" +#: ipalib/plugins/internal.py:273 +msgid "Issued To" msgstr "" -#: ipalib/plugins/permission.py:256 -msgid "" -"\n" -" Modify a permission.\n" -" " +#: ipalib/plugins/internal.py:274 +msgid "Key Compromise" msgstr "" -#: ipalib/plugins/permission.py:260 -msgid "Modified permission \"%(value)s\"" +#: ipalib/plugins/internal.py:275 +msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/permission.py:352 -msgid "" -"\n" -" Search for permissions.\n" -" " +#: ipalib/plugins/internal.py:276 +msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/permission.py:356 -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:277 +msgid "New Certificate" +msgstr "" -#: ipalib/plugins/permission.py:405 -msgid "" -"\n" -" Display information about a permission.\n" -" " +#: ipalib/plugins/internal.py:278 +msgid "Note" msgstr "" -#: ipalib/plugins/permission.py:428 -msgid "" -"\n" -" Add members to a permission.\n" -" " +#: ipalib/plugins/internal.py:279 +msgid "Organization" msgstr "" -#: ipalib/plugins/permission.py:437 -msgid "" -"\n" -" Remove members from a permission.\n" -" " +#: ipalib/plugins/internal.py:280 +msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/ping.py:19 -msgid "" -"\n" -"Ping the remote IPA server\n" +#: ipalib/plugins/internal.py:281 +msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/ping.py:29 -msgid "" -"\n" -" ping a remote server\n" -" " +#: ipalib/plugins/internal.py:282 +msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/ping.py:37 -msgid "" -"\n" -" A possible enhancement would be to take an argument and echo it\n" -" back but a fixed value works for now.\n" -" " +#: ipalib/plugins/internal.py:283 +msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/pkinit.py:19 -msgid "" -"\n" -"Kerberos pkinit options\n" -"\n" -"Enable or disable anonymous pkinit using the principal\n" -"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" -"pkinit support.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" -"\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" -"\n" -"For more information on anonymous pkinit see:\n" -"\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +#: ipalib/plugins/internal.py:284 +msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:46 +#: ipalib/plugins/internal.py:285 msgid "" -"\n" -" PKINIT Options\n" -" " +"To confirm your intention to restore this certificate, click the \"Restore\"" +" button." msgstr "" -#: ipalib/plugins/pkinit.py:51 -msgid "PKINIT" +#: ipalib/plugins/internal.py:286 +msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/pkinit.py:56 +#: ipalib/plugins/internal.py:287 msgid "" -"\n" -" Accepts only Enable/Disable.\n" -" " +"To confirm your intention to revoke this certificate, select a reason from " +"the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/pkinit.py:67 -msgid "" -"\n" -" Enable or Disable Anonymous PKINIT\n" -" " +#: ipalib/plugins/internal.py:288 +msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/privilege.py:19 -msgid "" -"\n" -"Privileges\n" -"\n" -"A privilege combines permissions into a logical task. A permission provides\n" -"the rights to do a single task. There are some IPA operations that require\n" -"multiple permissions to succeed. A privilege is where permissions are\n" -"combined in order to perform a specific task.\n" -"\n" -"For example, adding a user requires the following permissions:\n" -" * Creating a new user entry\n" -" * Resetting a user password\n" -" * Adding the new user to the default IPA users group\n" -"\n" -"Combining these three low-level tasks into a higher level task in the\n" -"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" -"\n" -"A privilege may not contain other privileges.\n" -"\n" -"See role and permission for additional information.\n" +#: ipalib/plugins/internal.py:290 +msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/privilege.py:45 -msgid "" -"\n" -" Privilege object.\n" -" " +#: ipalib/plugins/internal.py:291 +msgid "Superseded" msgstr "" -#: ipalib/plugins/privilege.py:65 -msgid "Privileges" +#: ipalib/plugins/internal.py:292 +msgid "Unspecified" msgstr "" -#: ipalib/plugins/privilege.py:70 -msgid "Privilege name" +#: ipalib/plugins/internal.py:293 +msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/privilege.py:77 -msgid "Privilege description" +#: ipalib/plugins/internal.py:294 +msgid "Validity" msgstr "" -#: ipalib/plugins/privilege.py:85 -msgid "" -"\n" -" Add a new privilege.\n" -" " +#: ipalib/plugins/internal.py:295 +msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/privilege.py:89 -msgid "Added privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:298 +msgid "Group Options" msgstr "" -#: ipalib/plugins/privilege.py:95 -msgid "" -"\n" -" Delete a privilege.\n" -" " +#: ipalib/plugins/internal.py:299 +msgid "Search Options" msgstr "" -#: ipalib/plugins/privilege.py:99 -msgid "Deleted privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:300 +msgid "User Options" msgstr "" -#: ipalib/plugins/privilege.py:105 -msgid "" -"\n" -" Modify a privilege.\n" -" " +#: ipalib/plugins/internal.py:305 +msgid "Data" msgstr "" -#: ipalib/plugins/privilege.py:109 -msgid "Modified privilege \"%(value)s\"" +#: ipalib/plugins/internal.py:306 +msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/privilege.py:115 -msgid "" -"\n" -" Search for privileges.\n" -" " +#: ipalib/plugins/internal.py:307 +msgid "Other Record Types" msgstr "" -#: ipalib/plugins/privilege.py:119 -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" - -#: ipalib/plugins/privilege.py:127 -msgid "" -"\n" -" Display information about a privilege.\n" -" " +#: ipalib/plugins/internal.py:308 +msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/privilege.py:135 -msgid "" -"\n" -" Add members to a privilege\n" -" " +#: ipalib/plugins/internal.py:309 +msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/privilege.py:144 -msgid "" -"\n" -" Remove members from a privilege\n" -" " +#: ipalib/plugins/internal.py:310 +msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/privilege.py:153 -msgid "" -"\n" -" Add permissions to a privilege.\n" -" " +#: ipalib/plugins/internal.py:311 +msgid "Record Type" msgstr "" -#: ipalib/plugins/privilege.py:169 -msgid "Number of permissions added" +#: ipalib/plugins/internal.py:314 +msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/privilege.py:177 -msgid "" -"\n" -" Remove permissions from a privilege.\n" -" " +#: ipalib/plugins/internal.py:317 +msgid "Account" msgstr "" -#: ipalib/plugins/privilege.py:195 -msgid "Number of permissions removed" +#: ipalib/plugins/internal.py:319 +msgid "Certificates" msgstr "" -#: ipalib/plugins/pwpolicy.py:20 -msgid "" -"\n" -"Password policy\n" -"\n" -"A password policy sets limitations on IPA passwords, including maximum\n" -"lifetime, minimum lifetime, the number of passwords to save in\n" -"history, the number of character classes required (for stronger passwords)\n" -"and the minimum password length.\n" -"\n" -"By default there is a single, global policy for all users. You can also\n" -"create a password policy to apply to a group. Each user is only subject\n" -"to one password policy, either the group policy or the global policy. A\n" -"group policy stands alone; it is not a super-set of the global policy plus\n" -"custom settings.\n" -"\n" -"Each group password policy requires a unique priority setting. If a user\n" -"is in multiple groups that have password policies, this priority determines\n" -"which password policy is applied. A lower value indicates a higher priority\n" -"policy.\n" -"\n" -"Group password policies are automatically removed when the groups they\n" -"are associated with are removed.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Modify the global policy:\n" -" ipa pwpolicy-mod --minlength=10\n" -"\n" -" Add a new group password policy:\n" -" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" -"\n" -" Display the global password policy:\n" -" ipa pwpolicy-show\n" -"\n" -" Display a group password policy:\n" -" ipa pwpolicy-show localadmins\n" -"\n" -" Display the policy that would be applied to a given user:\n" -" ipa pwpolicy-show --user=tuser1\n" -"\n" -" Modify a group password policy:\n" -" ipa pwpolicy-mod --minclasses=2 localadmins\n" +#: ipalib/plugins/internal.py:320 +msgid "Consume" msgstr "" -#: ipalib/plugins/pwpolicy.py:72 -msgid "" -"\n" -" Class of Service object used for linking policies with groups\n" -" " +#: ipalib/plugins/internal.py:321 +msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/pwpolicy.py:87 -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +#: ipalib/plugins/internal.py:323 +msgid "Download" msgstr "" -#: ipalib/plugins/pwpolicy.py:172 -msgid "" -"\n" -" Password Policy object\n" -" " +#: ipalib/plugins/internal.py:324 +msgid "Download Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:201 -msgid "Max failures" +#: ipalib/plugins/internal.py:326 +msgid "Import" msgstr "" -#: ipalib/plugins/pwpolicy.py:202 -msgid "Consecutive failures before lockout" +#: ipalib/plugins/internal.py:327 +msgid "Import Certificate" msgstr "" -#: ipalib/plugins/pwpolicy.py:207 -msgid "Failure reset interval" +#: ipalib/plugins/internal.py:328 +msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/pwpolicy.py:208 -msgid "Period after which failure count will be reset (seconds)" +#: ipalib/plugins/internal.py:329 +msgid "Loading..." msgstr "" -#: ipalib/plugins/pwpolicy.py:213 -msgid "Lockout duration" +#: ipalib/plugins/internal.py:330 +msgid "No Certificate." msgstr "" -#: ipalib/plugins/pwpolicy.py:214 -msgid "Period for which lockout is enforced (seconds)" +#: ipalib/plugins/internal.py:332 +msgid "Register" msgstr "" -#: ipalib/plugins/pwpolicy.py:224 -msgid "Group" +#: ipalib/plugins/internal.py:333 +msgid "Registration" msgstr "" -#: ipalib/plugins/pwpolicy.py:225 -msgid "Manage password policy for specific group" +#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:431 +msgid "Status" msgstr "" -#: ipalib/plugins/pwpolicy.py:230 -msgid "Max lifetime (days)" +#: ipalib/plugins/internal.py:338 +msgid "Group Settings" msgstr "" -#: ipalib/plugins/pwpolicy.py:231 -msgid "Maximum password lifetime (in days)" +#: ipalib/plugins/internal.py:339 +msgid "Is this a POSIX group?" msgstr "" -#: ipalib/plugins/pwpolicy.py:236 -msgid "Min lifetime (hours)" +#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:470 +msgid "Active" msgstr "" -#: ipalib/plugins/pwpolicy.py:237 -msgid "Minimum password lifetime (in hours)" +#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448 +msgid "Any Host" msgstr "" -#: ipalib/plugins/pwpolicy.py:242 -msgid "History size" +#: ipalib/plugins/internal.py:344 +msgid "Any Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:243 -msgid "Password history size" +#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449 +msgid "Anyone" msgstr "" -#: ipalib/plugins/pwpolicy.py:248 -msgid "Character classes" +#: ipalib/plugins/internal.py:346 +msgid "Accessing" msgstr "" -#: ipalib/plugins/pwpolicy.py:249 -msgid "Minimum number of character classes" +#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454 +#: ipalib/plugins/internal.py:475 +msgid "Inactive" msgstr "" -#: ipalib/plugins/pwpolicy.py:255 -msgid "Min length" +#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455 +msgid "Rule status" msgstr "" -#: ipalib/plugins/pwpolicy.py:256 -msgid "Minimum length of password" +#: ipalib/plugins/internal.py:349 +msgid "Via Service" msgstr "" -#: ipalib/plugins/pwpolicy.py:261 -msgid "Priority" +#: ipalib/plugins/internal.py:350 +msgid "From" msgstr "" -#: ipalib/plugins/pwpolicy.py:262 -msgid "Priority of the policy (higher number means lower priority" +#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460 +msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:294 -msgid "" -"\n" -" Ensure that the maximum lifetime is greater than the minimum.\n" -" If there is no minimum lifetime set then don't return an error.\n" -" " +#: ipalib/plugins/internal.py:352 +msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 -msgid "Maximum password life must be greater than minimum." +#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461 +msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 -msgid "" -"\n" -" Add a new group password policy.\n" -" " +#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462 +msgid "Who" msgstr "" -#: ipalib/plugins/pwpolicy.py:361 -msgid "" -"\n" -" Delete a group password policy.\n" -" " +#: ipalib/plugins/internal.py:362 +msgid "Access Denied" msgstr "" -#: ipalib/plugins/pwpolicy.py:380 -msgid "" -"\n" -" Modify a group password policy.\n" -" " +#: ipalib/plugins/internal.py:363 +msgid "Access Granted" msgstr "" -#: ipalib/plugins/pwpolicy.py:391 -msgid "priority cannot be set on global policy" +#: ipalib/plugins/internal.py:364 +msgid "Include Disabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:423 -msgid "" -"\n" -" Display information about password policy.\n" -" " +#: ipalib/plugins/internal.py:365 +msgid "Include Enabled" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 -msgid "User" +#: ipalib/plugins/internal.py:366 +msgid "HBAC Test" msgstr "" -#: ipalib/plugins/pwpolicy.py:429 -msgid "Display effective policy for a specific user" +#: ipalib/plugins/internal.py:367 +msgid "Matched" msgstr "" -#: ipalib/plugins/pwpolicy.py:452 -msgid "" -"\n" -" Search for group password policies.\n" -" " +#: ipalib/plugins/internal.py:368 +msgid "New Test" msgstr "" -#: ipalib/plugins/role.py:20 -msgid "" -"\n" -"Roles\n" -"\n" -"A role is used for fine-grained delegation. A permission grants the ability\n" -"to perform given low-level tasks (add a user, modify a group, etc.). A\n" -"privilege combines one or more permissions into a higher-level abstraction\n" -"such as useradmin. A useradmin would be able to add, delete and modify users.\n" -"\n" -"Privileges are assigned to Roles.\n" -"\n" -"Users, groups, hosts and hostgroups may be members of a Role.\n" -"\n" -"Roles can not contain other roles.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new role:\n" -" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" -"\n" -" Add some privileges to this role:\n" -" ipa role-add-privilege --privileges=addusers junioradmin\n" -" ipa role-add-privilege --privileges=change_password junioradmin\n" -" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" -"\n" -" Add a group of users to this role:\n" -" ipa group-add --desc=\"User admins\" useradmins\n" -" ipa role-add-member --groups=useradmins junioradmin\n" -"\n" -" Display information about a role:\n" -" ipa role-show junioradmin\n" -"\n" -" The result of this is that any users in the group 'useradmins' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" +#: ipalib/plugins/internal.py:369 +msgid "Rules" msgstr "" -#: ipalib/plugins/role.py:62 -msgid "" -"\n" -" Role object.\n" -" " +#: ipalib/plugins/internal.py:370 +msgid "Run Test" msgstr "" -#: ipalib/plugins/role.py:81 -msgid "Role" +#: ipalib/plugins/internal.py:371 +msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/role.py:86 -msgid "Role name" +#: ipalib/plugins/internal.py:372 +msgid "Unmatched" msgstr "" -#: ipalib/plugins/role.py:93 -msgid "A description of this role-group" +#: ipalib/plugins/internal.py:375 +msgid "Host Certificate" msgstr "" -#: ipalib/plugins/role.py:101 -msgid "" -"\n" -" Add a new role.\n" -" " +#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427 +msgid "Host Name" msgstr "" -#: ipalib/plugins/role.py:105 -msgid "Added role \"%(value)s\"" +#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425 +msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/role.py:111 -msgid "" -"\n" -" Delete a role.\n" -" " +#: ipalib/plugins/internal.py:378 +msgid "Host Settings" msgstr "" -#: ipalib/plugins/role.py:115 -msgid "Deleted role \"%(value)s\"" +#: ipalib/plugins/internal.py:379 +msgid "Enrolled?" msgstr "" -#: ipalib/plugins/role.py:121 -msgid "" -"\n" -" Modify a role.\n" -" " +#: ipalib/plugins/internal.py:380 +msgid "Enrollment" msgstr "" -#: ipalib/plugins/role.py:125 -msgid "Modified role \"%(value)s\"" +#: ipalib/plugins/internal.py:381 +msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/role.py:131 -msgid "" -"\n" -" Search for roles.\n" -" " +#: ipalib/plugins/internal.py:382 +msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/role.py:135 -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" +#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428 +msgid "Kerberos Key Not Present" +msgstr "" -#: ipalib/plugins/role.py:143 -msgid "" -"\n" -" Display information about a role.\n" -" " +#: ipalib/plugins/internal.py:384 +msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/role.py:151 -msgid "" -"\n" -" Add members to a role.\n" -" " +#: ipalib/plugins/internal.py:385 +msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/role.py:159 -msgid "" -"\n" -" Remove members from a role.\n" -" " +#: ipalib/plugins/internal.py:386 +msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/role.py:167 -msgid "" -"\n" -" Add privileges to a role.\n" -" " +#: ipalib/plugins/internal.py:387 +msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/role.py:183 -msgid "Number of privileges added" +#: ipalib/plugins/internal.py:388 +msgid "Reset OTP" msgstr "" -#: ipalib/plugins/role.py:191 +#: ipalib/plugins/internal.py:389 +msgid "Reset One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:390 +msgid "Set OTP" +msgstr "" + +#: ipalib/plugins/internal.py:391 +msgid "Set One-Time-Password" +msgstr "" + +#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432 +msgid "Unprovision" +msgstr "" + +#: ipalib/plugins/internal.py:394 +msgid "Are you sure you want to unprovision this host?" +msgstr "" + +#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434 +msgid "Unprovisioning ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:398 +msgid "Host Group Settings" +msgstr "" + +#: ipalib/plugins/internal.py:401 +msgid "Kerberos ticket policy" +msgstr "" + +#: ipalib/plugins/internal.py:404 +msgid "Netgroup Settings" +msgstr "" + +#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502 +msgid "Identity" +msgstr "" + +#: ipalib/plugins/internal.py:408 +msgid "Permission with invalid target specification" +msgstr "" + +#: ipalib/plugins/internal.py:410 +msgid "Target" +msgstr "" + +#: ipalib/plugins/internal.py:413 +msgid "Privilege Settings" +msgstr "" + +#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221 +msgid "Password Policy" +msgstr "" + +#: ipalib/plugins/internal.py:419 +msgid "Role Settings" +msgstr "" + +#: ipalib/plugins/internal.py:424 +msgid "Service Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:426 +msgid "Service Settings" +msgstr "" + +#: ipalib/plugins/internal.py:429 +msgid "Provisioning" +msgstr "" + +#: ipalib/plugins/internal.py:433 +msgid "Are you sure you want to unprovision this service?" +msgstr "" + +#: ipalib/plugins/internal.py:435 +msgid "Kerberos Key Present, Service Provisioned" +msgstr "" + +#: ipalib/plugins/internal.py:438 +msgid "Groups" +msgstr "" + +#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82 +msgid "Commands" +msgstr "" + +#: ipalib/plugins/internal.py:445 +msgid "Allow" +msgstr "" + +#: ipalib/plugins/internal.py:446 +msgid "Any Command" +msgstr "" + +#: ipalib/plugins/internal.py:447 +msgid "Any Group" +msgstr "" + +#: ipalib/plugins/internal.py:450 +msgid "Run Commands" +msgstr "" + +#: ipalib/plugins/internal.py:451 +msgid "Deny" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Access this host" +msgstr "" + +#: ipalib/plugins/internal.py:456 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:457 +msgid "As Whom" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Specified Commands and Groups" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Specified Groups" +msgstr "" + +#: ipalib/plugins/internal.py:465 +msgid "Account Settings" +msgstr "" + +#: ipalib/plugins/internal.py:466 +msgid "Account Status" +msgstr "" + +#: ipalib/plugins/internal.py:467 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:468 +msgid "" +"Are you sure you want to ${action} the user?
The change will take effect" +" immediately." +msgstr "" + +#: ipalib/plugins/internal.py:469 +msgid "Click to ${action}" +msgstr "" + +#: ipalib/plugins/internal.py:471 +msgid "Contact Settings" +msgstr "" + +#: ipalib/plugins/internal.py:472 +msgid "Deactivate" +msgstr "" + +#: ipalib/plugins/internal.py:473 +msgid "Employee Information" +msgstr "" + +#: ipalib/plugins/internal.py:474 +msgid "Error changing account status" +msgstr "" + +#: ipalib/plugins/internal.py:476 +msgid "Mailing Address" +msgstr "" + +#: ipalib/plugins/internal.py:477 +msgid "Misc. Information" +msgstr "" + +#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79 +msgid "Current Password" +msgstr "" + +#: ipalib/plugins/internal.py:482 +msgid "Current password is required" +msgstr "" + +#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76 +msgid "New Password" +msgstr "" + +#: ipalib/plugins/internal.py:484 +msgid "Password change complete" +msgstr "" + +#: ipalib/plugins/internal.py:485 +msgid "Passwords must match" +msgstr "" + +#: ipalib/plugins/internal.py:486 +msgid "Reset Password" +msgstr "" + +#: ipalib/plugins/internal.py:487 +msgid "Verify Password" +msgstr "" + +#: ipalib/plugins/internal.py:490 +msgid "Are you sure you want to delete selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:491 +msgid "Some entries were not deleted" +msgstr "" + +#: ipalib/plugins/internal.py:492 +msgid "Quick Links" +msgstr "" + +#: ipalib/plugins/internal.py:493 +msgid "Select All" +msgstr "" + +#: ipalib/plugins/internal.py:494 +msgid "" +"Query returned more results than the configured size limit. Displaying the " +"first ${counter} results." +msgstr "" + +#: ipalib/plugins/internal.py:495 +msgid "Unselect All" +msgstr "" + +#: ipalib/plugins/internal.py:498 +msgid "Audit" +msgstr "" + +#: ipalib/plugins/internal.py:499 +msgid "Automount" +msgstr "" + +#: ipalib/plugins/internal.py:500 +msgid "DNS" +msgstr "" + +#: ipalib/plugins/internal.py:501 +msgid "Host Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:503 +msgid "IPA Server" +msgstr "" + +#: ipalib/plugins/internal.py:504 +msgid "Policy" +msgstr "" + +#: ipalib/plugins/internal.py:505 +msgid "Role Based Access Control" +msgstr "" + +#: ipalib/plugins/internal.py:506 +msgid "Sudo" +msgstr "" + +#: ipalib/plugins/internal.py:508 +msgid "True" +msgstr "" + +#: ipalib/plugins/internal.py:510 +msgid "Next" +msgstr "" + +#: ipalib/plugins/internal.py:511 +msgid "Page" +msgstr "" + +#: ipalib/plugins/internal.py:512 +msgid "Prev" +msgstr "" + +#: ipalib/plugins/internal.py:513 +msgid "undo" +msgstr "" + +#: ipalib/plugins/internal.py:514 +msgid "undo all" +msgstr "" + +#: ipalib/plugins/internal.py:516 +msgid "Text does not match field pattern" +msgstr "" + +#: ipalib/plugins/internal.py:517 +msgid "Must be an integer" +msgstr "" + +#: ipalib/plugins/internal.py:518 +msgid "Maximum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:519 +msgid "Minimum value is ${value}" +msgstr "" + +#: ipalib/plugins/internal.py:520 +msgid "Required field" +msgstr "" + +#: ipalib/plugins/internal.py:525 +msgid "Dict of I18N messages" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:25 msgid "" "\n" -" Remove privileges from a role.\n" -" " +"Kerberos ticket policy\n" +"\n" +"There is a single Kerberos ticket policy. This policy defines the\n" +"maximum ticket lifetime and the maximum renewal age, the period during\n" +"which the ticket is renewable.\n" +"\n" +"You can also create a per-user ticket policy by specifying the user login.\n" +"\n" +"For changes to the global policy to take effect, restarting the KDC service\n" +"is required, which can be achieved using:\n" +"\n" +"service krb5kdc restart\n" +"\n" +"Changes to per-user policies take effect immediately for newly requested\n" +"tickets (e.g. when the user next runs kinit).\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current Kerberos ticket policy:\n" +" ipa krbtpolicy-show\n" +"\n" +" Reset the policy to the default:\n" +" ipa krbtpolicy-reset\n" +"\n" +" Modify the policy to 8 hours max life, 1-day max renewal:\n" +" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n" +"\n" +" Display effective Kerberos ticket policy for user 'admin':\n" +" ipa krbtpolicy-show admin\n" +"\n" +" Reset per-user policy for user 'admin':\n" +" ipa krbtpolicy-reset admin\n" +"\n" +" Modify per-user policy for user 'admin':\n" +" ipa krbtpolicy-mod admin --maxlife=3600\n" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:75 +msgid "kerberos ticket policy settings" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80 +msgid "Kerberos Ticket Policy" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:86 +msgid "Manage ticket policy for specific user" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:91 +msgid "Max life" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:92 +msgid "Maximum ticket life (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:97 +msgid "Max renew" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:98 +msgid "Maximum renewable age (seconds)" +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:112 +msgid "Modify Kerberos ticket policy." +msgstr "" + +#: ipalib/plugins/krbtpolicy.py:125 +msgid "Display the current Kerberos ticket policy." msgstr "" -#: ipalib/plugins/role.py:207 -msgid "Number of privileges removed" +#: ipalib/plugins/krbtpolicy.py:148 +msgid "Reset Kerberos ticket policy to the default values." +msgstr "" + +#: ipalib/plugins/migration.py:34 +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user and\n" +" group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users having\n" +" colliding group as their primary group may happen to belong to an unknown group\n" +" on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +"\n" +msgstr "" + +#: ipalib/plugins/migration.py:86 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "" + +#: ipalib/plugins/migration.py:87 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ipalib/plugins/migration.py:88 +msgid "Migration of LDAP search reference is not supported." +msgstr "" + +#: ipalib/plugins/migration.py:89 +msgid "Malformed DN" +msgstr "" + +#: ipalib/plugins/migration.py:255 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipalib/plugins/migration.py:270 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipalib/plugins/migration.py:275 +msgid "Migrate users and groups from DS to IPA." +msgstr "" + +#: ipalib/plugins/migration.py:322 +msgid "LDAP URI" +msgstr "" + +#: ipalib/plugins/migration.py:323 +msgid "LDAP URI of DS server to migrate from" +msgstr "" + +#: ipalib/plugins/migration.py:329 +msgid "bind password" +msgstr "" + +#: ipalib/plugins/migration.py:336 +msgid "Bind DN" +msgstr "" + +#: ipalib/plugins/migration.py:342 +msgid "User container" +msgstr "" + +#: ipalib/plugins/migration.py:343 +msgid "RDN of container for users in DS" +msgstr "" + +#: ipalib/plugins/migration.py:349 +msgid "Group container" +msgstr "" + +#: ipalib/plugins/migration.py:350 +msgid "RDN of container for groups in DS" +msgstr "" + +#: ipalib/plugins/migration.py:356 +msgid "User object class" +msgstr "" + +#: ipalib/plugins/migration.py:357 +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:364 +msgid "Group object class" +msgstr "" + +#: ipalib/plugins/migration.py:365 +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:372 +msgid "Ignore user object class" +msgstr "" + +#: ipalib/plugins/migration.py:373 +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:380 +msgid "Ignore user attribute" +msgstr "" + +#: ipalib/plugins/migration.py:381 +msgid "" +"Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:388 +msgid "Ignore group object class" +msgstr "" + +#: ipalib/plugins/migration.py:389 +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:396 +msgid "Ignore group attribute" +msgstr "" + +#: ipalib/plugins/migration.py:397 +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "" + +#: ipalib/plugins/migration.py:404 +msgid "Overwrite GID" +msgstr "" + +#: ipalib/plugins/migration.py:405 +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" + +#: ipalib/plugins/migration.py:410 +msgid "LDAP schema" +msgstr "" + +#: ipalib/plugins/migration.py:411 +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" + +#: ipalib/plugins/migration.py:417 +msgid "Continue" +msgstr "" + +#: ipalib/plugins/migration.py:418 +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" + +#: ipalib/plugins/migration.py:426 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:430 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:434 +msgid "False if migration mode was disabled." +msgstr "" + +#: ipalib/plugins/migration.py:438 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ipalib/plugins/migration.py:440 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipalib/plugins/migration.py:445 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "" + +#: ipalib/plugins/migration.py:448 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipalib/plugins/migration.py:523 +#, python-format +msgid "Container for %(container)s not found" +msgstr "" + +#: ipalib/plugins/misc.py:25 +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" + +#: ipalib/plugins/misc.py:36 +msgid "Show environment variables." +msgstr "" + +#: ipalib/plugins/misc.py:38 +#, python-format +msgid "%(count)d variables" +msgstr "" + +#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115 +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "" + +#: ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ipalib/plugins/misc.py:106 +msgid "Show all loaded plugins." +msgstr "" + +#: ipalib/plugins/misc.py:109 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" + +#: ipalib/plugins/misc.py:126 +msgid "Number of plugins loaded" msgstr "" -#: ipalib/plugins/selfservice.py:19 +#: ipalib/plugins/netgroup.py:28 msgid "" "\n" -"Self-service Permissions\n" -"\n" -"A permission enables fine-grained delegation of permissions. Access Control\n" -"Rules, or instructions (ACIs), grant permission to permissions to perform\n" -"given tasks such as adding a user, modifying a group, etc.\n" -"\n" -"A Self-service permission defines what an object can change in its own entry.\n" +"Netgroups\n" "\n" +"A netgroup is a group used for permission checking. It can contain both\n" +"user and host values.\n" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +" Add a new netgroup:\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +" Add members to the netgroup:\n" +" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" "\n" -" Display our updated rule:\n" -" ipa selfservice-show \"Users manage their own address\"\n" +" Remove a member from the netgroup:\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" "\n" -" Delete a rule:\n" -" ipa selfservice-del \"Users manage their own address\"\n" +" Display information about a netgroup:\n" +" ipa netgroup-show admins\n" +"\n" +" Delete a netgroup:\n" +" ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/selfservice.py:56 -msgid "" -"\n" -" Determine if the ACI is a Self-service ACI and raise an exception if it\n" -" isn't.\n" -"\n" -" Return the result if it is a self-service ACI.\n" -" " +#: ipalib/plugins/netgroup.py:60 +msgid "Member Host" msgstr "" -#: ipalib/plugins/selfservice.py:64 -msgid "Self-service permission '%(permission)s' not found" +#: ipalib/plugins/netgroup.py:72 +msgid "netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:68 -msgid "" -"\n" -" Selfservice object.\n" -" " +#: ipalib/plugins/netgroup.py:73 +msgid "netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:75 -msgid "Self Service Permissions" +#: ipalib/plugins/netgroup.py:99 +msgid "Netgroups" msgstr "" -#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81 -msgid "Self-service name" +#: ipalib/plugins/netgroup.py:100 +msgid "Netgroup" msgstr "" -#: ipalib/plugins/selfservice.py:114 -msgid "" -"\n" -" Add a new self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:105 +msgid "Netgroup name" msgstr "" -#: ipalib/plugins/selfservice.py:118 -msgid "Added selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:112 +msgid "Netgroup description" msgstr "" -#: ipalib/plugins/selfservice.py:137 -msgid "" -"\n" -" Delete a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:116 +msgid "NIS domain name" msgstr "" -#: ipalib/plugins/selfservice.py:142 -msgid "Deleted selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:121 +msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/selfservice.py:158 -msgid "" -"\n" -" Modify a self-service permission.\n" -" " +#: ipalib/plugins/netgroup.py:142 +msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/selfservice.py:162 -msgid "Modified selfservice \"%(value)s\"" +#: ipalib/plugins/netgroup.py:145 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:181 +#: ipalib/plugins/netgroup.py:162 +#, python-format msgid "" -"\n" -" Search for a self-service permission.\n" -" " +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipalib/plugins/selfservice.py:185 -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" +#: ipalib/plugins/netgroup.py:174 +msgid "Delete a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:176 +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:182 +msgid "Modify a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:185 +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/netgroup.py:199 +msgid "Search for a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:204 +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" -#: ipalib/plugins/selfservice.py:207 +#: ipalib/plugins/netgroup.py:214 +msgid "search for managed groups" +msgstr "" + +#: ipalib/plugins/netgroup.py:236 +msgid "Display information about a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:244 +msgid "Add members to a netgroup." +msgstr "" + +#: ipalib/plugins/netgroup.py:279 +msgid "Remove members from a netgroup." +msgstr "" + +#: ipalib/plugins/passwd.py:28 msgid "" "\n" -" Display information about a self-service permission.\n" -" " +"Set a user's password\n" +"\n" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" +"\n" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" +"\n" +"EXAMPLES:\n" +"\n" +" To reset your own password:\n" +" ipa passwd\n" +"\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "" + +#: ipalib/plugins/passwd.py:64 +msgid "Set a user's password." +msgstr "" + +#: ipalib/plugins/passwd.py:88 +#, python-format +msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:21 +#: ipalib/plugins/permission.py:27 msgid "" "\n" -"Services\n" +"Permissions\n" "\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable form of a 389-ds Access Control Rule, or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" "\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" +"A permission may not contain other permissions.\n" "\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"* A permission grants access to read, write, add or delete.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" "\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" +"A permission is made up of a number of different parts:\n" "\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. add - add a new entry to the tree\n" +"4. delete - delete an existing entry\n" +"5. all - all permissions are granted\n" +"\n" +"Read permission is granted for most attributes by default so the read\n" +"permission is not expected to be used very often.\n" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +"\n" +"There are a number of allowed targets:\n" +"1. type: a type of object (user, group, etc).\n" +"2. memberof: a member of a group or hostgroup\n" +"3. filter: an LDAP filter\n" +"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n" +" super-set of the \"type\" target.\n" +"5. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership)\n" "\n" "EXAMPLES:\n" "\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\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" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n" +msgstr "" + +#: ipalib/plugins/permission.py:85 +msgid "Permission Type" +msgstr "" + +#: ipalib/plugins/permission.py:94 +msgid "permission" +msgstr "" + +#: ipalib/plugins/permission.py:95 +msgid "permissions" +msgstr "" + +#: ipalib/plugins/permission.py:114 +msgid "Permission name" +msgstr "" + +#: ipalib/plugins/permission.py:120 +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "" + +#: ipalib/plugins/permission.py:135 +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "" + +#: ipalib/plugins/permission.py:141 +msgid "Member of group" +msgstr "" + +#: ipalib/plugins/permission.py:142 +msgid "Target members of a group" +msgstr "" + +#: ipalib/plugins/permission.py:154 +msgid "Subtree to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:160 +msgid "User group to apply permissions to" +msgstr "" + +#: ipalib/plugins/permission.py:180 +msgid "Add a new permission." +msgstr "" + +#: ipalib/plugins/permission.py:182 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:237 +msgid "Delete a permission." +msgstr "" + +#: ipalib/plugins/permission.py:239 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:255 +msgid "Modify a permission." +msgstr "" + +#: ipalib/plugins/permission.py:257 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/permission.py:349 +msgid "Search for permissions." +msgstr "" + +#: ipalib/plugins/permission.py:352 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" + +#: ipalib/plugins/permission.py:402 +msgid "Display information about a permission." +msgstr "" + +#: ipalib/plugins/ping.py:26 +msgid "" +"\n" +"Ping the remote IPA server\n" +msgstr "" + +#: ipalib/plugins/ping.py:31 +msgid "Ping a remote server." +msgstr "" + +#: ipalib/plugins/pkinit.py:25 +msgid "" "\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" +"Kerberos pkinit options\n" "\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" +"Enable or disable anonymous pkinit using the principal\n" +"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n" +"pkinit support.\n" "\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" +"EXAMPLES:\n" "\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" +" Enable anonymous pkinit:\n" +" ipa pkinit-anonymous enable\n" "\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +" Disable anonymous pkinit:\n" +" ipa pkinit-anonymous disable\n" "\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" +"For more information on anonymous pkinit see:\n" "\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "" -"\n" -" For now just verify that it is properly base64-encoded.\n" -" " +#: ipalib/plugins/pkinit.py:49 +msgid "pkinit" +msgstr "" + +#: ipalib/plugins/pkinit.py:51 +msgid "PKINIT" +msgstr "" + +#: ipalib/plugins/pkinit.py:67 +msgid "Enable or Disable Anonymous PKINIT." msgstr "" -#: ipalib/plugins/service.py:175 +#: ipalib/plugins/privilege.py:23 msgid "" "\n" -" Set individual attributes from some values from a certificate.\n" +"Privileges\n" "\n" -" entry_attrs is a dict of an entry\n" +"A privilege combines permissions into a logical task. A permission provides\n" +"the rights to do a single task. There are some IPA operations that require\n" +"multiple permissions to succeed. A privilege is where permissions are\n" +"combined in order to perform a specific task.\n" "\n" -" returns nothing\n" -" " +"For example, adding a user requires the following permissions:\n" +" * Creating a new user entry\n" +" * Resetting a user password\n" +" * Adding the new user to the default IPA users group\n" +"\n" +"Combining these three low-level tasks into a higher level task in the\n" +"form of a privilege named \"Add User\" makes it easier to manage Roles.\n" +"\n" +"A privilege may not contain other privileges.\n" +"\n" +"See role and permission for additional information.\n" msgstr "" -#: ipalib/plugins/service.py:199 -msgid "" -"\n" -" Service object.\n" -" " +#: ipalib/plugins/privilege.py:49 +msgid "privilege" msgstr "" -#: ipalib/plugins/service.py:226 -msgid "Service principal" +#: ipalib/plugins/privilege.py:50 +msgid "privileges" msgstr "" -#: ipalib/plugins/service.py:242 -msgid "" -"\n" -" Add a new IPA new service.\n" -" " +#: ipalib/plugins/privilege.py:65 +msgid "Privileges" msgstr "" -#: ipalib/plugins/service.py:245 -msgid "Added service \"%(value)s\"" +#: ipalib/plugins/privilege.py:66 +msgid "Privilege" msgstr "" -#: ipalib/plugins/service.py:251 -msgid "force principal name even if not in DNS" +#: ipalib/plugins/privilege.py:71 +msgid "Privilege name" msgstr "" -#: ipalib/plugins/service.py:284 -msgid "" -"\n" -" Delete an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:77 +msgid "Privilege description" msgstr "" -#: ipalib/plugins/service.py:287 -msgid "Deleted service \"%(value)s\"" +#: ipalib/plugins/privilege.py:85 +msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/service.py:321 -msgid "" -"\n" -" Modify an existing IPA service.\n" -" " +#: ipalib/plugins/privilege.py:87 +#, python-format +msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:324 -msgid "Modified service \"%(value)s\"" +#: ipalib/plugins/privilege.py:93 +msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/service.py:356 -msgid "" -"\n" -" Search for IPA services.\n" -" " +#: ipalib/plugins/privilege.py:95 +#, python-format +msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:359 -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" +#: ipalib/plugins/privilege.py:101 +msgid "Modify a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:103 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/privilege.py:109 +msgid "Search for privileges." +msgstr "" + +#: ipalib/plugins/privilege.py:112 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" msgstr[0] "" -#: ipalib/plugins/service.py:394 -msgid "" -"\n" -" Display information about an IPA service.\n" -" " +#: ipalib/plugins/privilege.py:119 +msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/service.py:432 -msgid "" -"\n" -" Add hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:125 +msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/service.py:442 -msgid "" -"\n" -" Remove hosts that can manage this service.\n" -" " +#: ipalib/plugins/privilege.py:142 +msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/service.py:452 -msgid "" -"\n" -" Disable the Kerberos key and SSL certificate of a service.\n" -" " +#: ipalib/plugins/privilege.py:157 +msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/service.py:456 -msgid "Disabled service \"%(value)s\"" +#: ipalib/plugins/privilege.py:165 +msgid "Remove permissions from a privilege." +msgstr "" + +#: ipalib/plugins/privilege.py:182 +msgid "Number of permissions removed" msgstr "" -#: ipalib/plugins/sudocmd.py:19 +#: ipalib/plugins/pwpolicy.py:29 msgid "" "\n" -"Sudo Commands\n" +"Password policy\n" "\n" -"Commands used as building blocks for sudo\n" +"A password policy sets limitations on IPA passwords, including maximum\n" +"lifetime, minimum lifetime, the number of passwords to save in\n" +"history, the number of character classes required (for stronger passwords)\n" +"and the minimum password length.\n" +"\n" +"By default there is a single, global policy for all users. You can also\n" +"create a password policy to apply to a group. Each user is only subject\n" +"to one password policy, either the group policy or the global policy. A\n" +"group policy stands alone; it is not a super-set of the global policy plus\n" +"custom settings.\n" +"\n" +"Each group password policy requires a unique priority setting. If a user\n" +"is in multiple groups that have password policies, this priority determines\n" +"which password policy is applied. A lower value indicates a higher priority\n" +"policy.\n" +"\n" +"Group password policies are automatically removed when the groups they\n" +"are associated with are removed.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Modify the global policy:\n" +" ipa pwpolicy-mod --minlength=10\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Add a new group password policy:\n" +" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n" +"\n" +" Display the global password policy:\n" +" ipa pwpolicy-show\n" +"\n" +" Display a group password policy:\n" +" ipa pwpolicy-show localadmins\n" +"\n" +" Display the policy that would be applied to a given user:\n" +" ipa pwpolicy-show --user=tuser1\n" "\n" +" Modify a group password policy:\n" +" ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipalib/plugins/sudocmd.py:46 -msgid "" -"\n" -" Sudo Command object.\n" -" " +#: ipalib/plugins/pwpolicy.py:89 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/sudocmd.py:64 -msgid "Sudo Commands" +#: ipalib/plugins/pwpolicy.py:177 +msgid "password policy" msgstr "" -#: ipalib/plugins/sudocmd.py:69 -msgid "Sudo Command" +#: ipalib/plugins/pwpolicy.py:178 +msgid "password policies" msgstr "" -#: ipalib/plugins/sudocmd.py:75 -msgid "A description of this command" +#: ipalib/plugins/pwpolicy.py:202 +msgid "Max failures" msgstr "" -#: ipalib/plugins/sudocmd.py:98 -msgid "" -"\n" -" Create new sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:203 +msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/sudocmd.py:102 -msgid "Added sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:208 +msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/sudocmd.py:107 -msgid "" -"\n" -" Delete sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:209 +msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:111 -msgid "Deleted sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:214 +msgid "Lockout duration" msgstr "" -#: ipalib/plugins/sudocmd.py:116 -msgid "" -"\n" -" Modify command.\n" -" " +#: ipalib/plugins/pwpolicy.py:215 +msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/sudocmd.py:120 -msgid "Modified sudo command \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:220 +msgid "Password Policies" msgstr "" -#: ipalib/plugins/sudocmd.py:125 -msgid "" -"\n" -" Search for commands.\n" -" " +#: ipalib/plugins/pwpolicy.py:226 +msgid "Group" msgstr "" -#: ipalib/plugins/sudocmd.py:129 -msgid "%(count)d sudo command matched" -msgid_plural "%(count)d sudo command matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:227 +msgid "Manage password policy for specific group" +msgstr "" -#: ipalib/plugins/sudocmd.py:136 -msgid "" -"\n" -" Display sudo command.\n" -" " +#: ipalib/plugins/pwpolicy.py:232 +msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:19 -msgid "" -"\n" -"Groups of Sudo commands\n" -"\n" -"Manage groups of Sudo commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo command group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo command group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" -"\n" -" Manage Sudo command group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo command group:\n" -" ipa group-show localadmins\n" +#: ipalib/plugins/pwpolicy.py:233 +msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:50 -msgid "" -"\n" -" Sudo Group object.\n" -" " +#: ipalib/plugins/pwpolicy.py:238 +msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:70 -msgid "Sudo Command Group" +#: ipalib/plugins/pwpolicy.py:239 +msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:93 -msgid "" -"\n" -" Create new sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:244 +msgid "History size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:97 -msgid "Added sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:245 +msgid "Password history size" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:103 -msgid "" -"\n" -" Delete sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:250 +msgid "Character classes" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:251 +msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:107 -msgid "Deleted sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:257 +msgid "Min length" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:113 -msgid "" -"\n" -" Modify group.\n" -" " +#: ipalib/plugins/pwpolicy.py:258 +msgid "Minimum length of password" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:263 +msgid "Priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:264 +msgid "Priority of the policy (higher number means lower priority" +msgstr "" + +#: ipalib/plugins/pwpolicy.py:317 +msgid "Maximum password life must be greater than minimum." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:336 +msgid "Add a new group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:361 +msgid "Delete a group password policy." +msgstr "" + +#: ipalib/plugins/pwpolicy.py:372 +msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:117 -msgid "Modified sudo command group \"%(value)s\"" +#: ipalib/plugins/pwpolicy.py:387 +msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/sudocmdgroup.py:123 -msgid "" -"\n" -" Search for sudo command groups.\n" -" " +#: ipalib/plugins/pwpolicy.py:397 +msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:127 -msgid "%(count)d sudo command group matched" -msgid_plural "%(count)d sudo command groups matched" -msgstr[0] "" +#: ipalib/plugins/pwpolicy.py:428 +msgid "Display information about password policy." +msgstr "" -#: ipalib/plugins/sudocmdgroup.py:136 -msgid "" -"\n" -" Display sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169 +msgid "User" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:144 -msgid "" -"\n" -" Add members to sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:433 +msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/sudocmdgroup.py:152 -msgid "" -"\n" -" Remove members from sudo command group.\n" -" " +#: ipalib/plugins/pwpolicy.py:456 +msgid "Search for group password policies." msgstr "" -#: ipalib/plugins/sudorule.py:19 +#: ipalib/plugins/role.py:26 msgid "" "\n" -"Sudo (su \"do\") allows a system administrator to delegate authority to\n" -"give certain users (or groups of users) the ability to run some (or all)\n" -"commands as root or another user while providing an audit trail of the\n" -"commands and their arguments.\n" +"Roles\n" "\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"A role is used for fine-grained delegation. A permission grants the ability\n" +"to perform given low-level tasks (add a user, modify a group, etc.). A\n" +"privilege combines one or more permissions into a higher-level abstraction\n" +"such as useradmin. A useradmin would be able to add, delete and modify users.\n" "\n" -"To enable the binddn run the following command to set the password:\n" -"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"Privileges are assigned to Roles.\n" "\n" -"For more information, see the FreeIPA Documentation to Sudo.\n" -msgstr "" - -#: ipalib/plugins/sudorule.py:44 -msgid "" +"Users, groups, hosts and hostgroups may be members of a Role.\n" "\n" -" Sudo Rule management\n" -" " +"Roles can not contain other roles.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new role:\n" +" ipa role-add --desc=\"Junior-level admin\" junioradmin\n" +"\n" +" Add some privileges to this role:\n" +" ipa role-add-privilege --privileges=addusers junioradmin\n" +" ipa role-add-privilege --privileges=change_password junioradmin\n" +" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n" +"\n" +" Add a group of users to this role:\n" +" ipa group-add --desc=\"User admins\" useradmins\n" +" ipa role-add-member --groups=useradmins junioradmin\n" +"\n" +" Display information about a role:\n" +" ipa role-show junioradmin\n" +"\n" +" The result of this is that any users in the group 'useradmins' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" msgstr "" -#: ipalib/plugins/sudorule.py:68 -msgid "Sudo Rule" +#: ipalib/plugins/role.py:66 +msgid "role" msgstr "" -#: ipalib/plugins/sudorule.py:98 -msgid "Command category" +#: ipalib/plugins/role.py:67 +msgid "roles" msgstr "" -#: ipalib/plugins/sudorule.py:99 -msgid "Command category the rule applies to" +#: ipalib/plugins/role.py:82 +msgid "Role" msgstr "" -#: ipalib/plugins/sudorule.py:104 -msgid "Run As User category" +#: ipalib/plugins/role.py:87 +msgid "Role name" msgstr "" -#: ipalib/plugins/sudorule.py:105 -msgid "Run As User category the rule applies to" +#: ipalib/plugins/role.py:93 +msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/sudorule.py:110 -msgid "Run As Group category" +#: ipalib/plugins/role.py:101 +msgid "Add a new role." msgstr "" -#: ipalib/plugins/sudorule.py:111 -msgid "Run As Group category the rule applies to" +#: ipalib/plugins/role.py:103 +#, python-format +msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:131 -msgid "Sudo Allow Commands" +#: ipalib/plugins/role.py:109 +msgid "Delete a role." msgstr "" -#: ipalib/plugins/sudorule.py:135 -msgid "Sudo Deny Commands" +#: ipalib/plugins/role.py:111 +#, python-format +msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:147 -msgid "Run As User" +#: ipalib/plugins/role.py:117 +msgid "Modify a role." msgstr "" -#: ipalib/plugins/sudorule.py:151 -msgid "Run As Group" +#: ipalib/plugins/role.py:119 +#, python-format +msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:156 -msgid "External User" +#: ipalib/plugins/role.py:125 +msgid "Search for roles." msgstr "" -#: ipalib/plugins/sudorule.py:157 -msgid "External User the rule applies to" -msgstr "" +#: ipalib/plugins/role.py:128 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" -#: ipalib/plugins/sudorule.py:161 -msgid "RunAs External User" +#: ipalib/plugins/role.py:135 +msgid "Display information about a role." msgstr "" -#: ipalib/plugins/sudorule.py:162 -msgid "External User the commands can run as" +#: ipalib/plugins/role.py:141 +msgid "Add members to a role." msgstr "" -#: ipalib/plugins/sudorule.py:166 -msgid "RunAs External Group" +#: ipalib/plugins/role.py:147 +msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/sudorule.py:167 -msgid "External Group the commands can run as" +#: ipalib/plugins/role.py:153 +msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/sudorule.py:175 -msgid "" -"\n" -" Create new Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:168 +msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/sudorule.py:183 -msgid "Added sudo rule \"%(value)s\"" +#: ipalib/plugins/role.py:176 +msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/sudorule.py:189 -msgid "" -"\n" -" Delete Sudo Rule.\n" -" " +#: ipalib/plugins/role.py:191 +msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" -" Modify Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:205 -msgid "" +"Self-service Permissions\n" "\n" -" Search for Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:213 -msgid "" +"A permission enables fine-grained delegation of permissions. Access Control\n" +"Rules, or instructions (ACIs), grant permission to permissions to perform\n" +"given tasks such as adding a user, modifying a group, etc.\n" "\n" -" Display Sudo Rule.\n" -" " -msgstr "" - -#: ipalib/plugins/sudorule.py:221 -msgid "" +"A Self-service permission defines what an object can change in its own entry.\n" "\n" -" Enable a Sudo rule.\n" -" " +"\n" +"EXAMPLES:\n" +"\n" +" Add a self-service rule to allow users to manage their address:\n" +" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones. Add telephoneNumber to the list:\n" +" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" ipa selfservice-show \"Users manage their own address\"\n" +"\n" +" Delete a rule:\n" +" ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/sudorule.py:247 -msgid "" -"\n" -" Disable a Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:65 +#, python-format +msgid "Self-service permission '%(permission)s' not found" msgstr "" -#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293 -msgid "" -"\n" -" Add commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:74 +msgid "self service permission" msgstr "" -#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303 -msgid "" -"\n" -" Remove commands and sudo command groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:75 +msgid "self service permissions" msgstr "" -#: ipalib/plugins/sudorule.py:313 -msgid "" -"\n" -" Add users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:76 +msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/sudorule.py:349 -msgid "" -"\n" -" Remove users and groups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:77 +msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/sudorule.py:383 -msgid "" -"\n" -" Add hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83 +msgid "Self-service name" msgstr "" -#: ipalib/plugins/sudorule.py:419 -msgid "" -"\n" -" Remove hosts and hostgroups affected by Sudo Rule.\n" -" " +#: ipalib/plugins/selfservice.py:118 +msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:453 -msgid "" -"\n" -" Add user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:120 +#, python-format +msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:489 -msgid "" -"\n" -" Remove user for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:139 +msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:523 -msgid "" -"\n" -" Add group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:142 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:559 -msgid "" -"\n" -" Remove group for Sudo to execute as.\n" -" " +#: ipalib/plugins/selfservice.py:158 +msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:593 -msgid "" -"\n" -" Add an option to the Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:160 +#, python-format +msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641 -msgid "Sudo Option" +#: ipalib/plugins/selfservice.py:179 +msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/sudorule.py:635 -msgid "" -"\n" -" Remove an option from Sudo rule.\n" -" " +#: ipalib/plugins/selfservice.py:182 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "" + +#: ipalib/plugins/selfservice.py:203 +msgid "Display information about a self-service permission." msgstr "" -#: ipalib/plugins/user.py:20 +#: ipalib/plugins/service.py:35 msgid "" "\n" -"Users\n" +"Services\n" "\n" -"Manage user entries. All users are POSIX users.\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" "\n" -"IPA supports a wide range of username formats, but you need to be aware of any\n" -"restrictions that may apply to your particular environment. For example,\n" -"usernames that start with a digit or usernames that exceed a certain length\n" -"may cause problems for some UNIX systems.\n" -"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" "\n" -"Disabling a user account prevents that user from obtaining new Kerberos\n" -"credentials. It does not invalidate any credentials that have already\n" -"been issued.\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" "\n" -"Password management is not a part of this module. For more information\n" -"about this topic please see: ipa help passwd\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new user:\n" -" ipa user-add --first=Tim --last=User --password tuser1\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" "\n" -" Find all users whose entries include the string \"Tim\":\n" -" ipa user-find Tim\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" "\n" -" Find all users with \"Tim\" as the first name:\n" -" ipa user-find --first=Tim\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" "\n" -" Disable a user account:\n" -" ipa user-disable tuser1\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" "\n" -" Enable a user account:\n" -" ipa user-enable tuser1\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" "\n" -" Delete a user:\n" -" ipa user-del tuser1\n" -msgstr "" - -#: ipalib/plugins/user.py:79 -msgid "" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n" "\n" -" User object.\n" -" " msgstr "" -#: ipalib/plugins/user.py:116 -msgid "User login" +#: ipalib/plugins/service.py:204 +msgid "service" msgstr "" -#: ipalib/plugins/user.py:123 -msgid "First name" +#: ipalib/plugins/service.py:205 +msgid "services" msgstr "" -#: ipalib/plugins/user.py:127 -msgid "Last name" +#: ipalib/plugins/service.py:229 +msgid "Service principal" msgstr "" -#: ipalib/plugins/user.py:130 -msgid "Full name" +#: ipalib/plugins/service.py:245 +msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/user.py:135 -msgid "Display name" +#: ipalib/plugins/service.py:247 +#, python-format +msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:140 -msgid "Initials" +#: ipalib/plugins/service.py:253 +msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/user.py:146 -msgid "Home directory" +#: ipalib/plugins/service.py:286 +msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/user.py:150 -msgid "GECOS field" +#: ipalib/plugins/service.py:288 +#, python-format +msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:156 -msgid "Login shell" +#: ipalib/plugins/service.py:322 +msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/user.py:161 -msgid "Kerberos principal" +#: ipalib/plugins/service.py:324 +#, python-format +msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:168 -msgid "Email address" +#: ipalib/plugins/service.py:356 +msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/user.py:173 -msgid "Prompt to set the user password" +#: ipalib/plugins/service.py:359 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" + +#: ipalib/plugins/service.py:391 +msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/user.py:180 -msgid "UID" +#: ipalib/plugins/service.py:424 +msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:181 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/service.py:433 +msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/user.py:188 -msgid "Group ID Number" +#: ipalib/plugins/service.py:442 +msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/user.py:193 -msgid "Street address" +#: ipalib/plugins/service.py:445 +#, python-format +msgid "Disabled service \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:197 -msgid "City" +#: ipalib/plugins/sudocmd.py:29 +msgid "" +"\n" +"Sudo Commands\n" +"\n" +"Commands used as building blocks for sudo\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +"\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" +"\n" msgstr "" -#: ipalib/plugins/user.py:201 -msgid "State/Province" +#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48 +msgid "commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:204 -msgid "ZIP" +#: ipalib/plugins/sudocmd.py:51 +msgid "sudo command" msgstr "" -#: ipalib/plugins/user.py:208 -msgid "Telephone Number" +#: ipalib/plugins/sudocmd.py:52 +msgid "sudo commands" msgstr "" -#: ipalib/plugins/user.py:211 -msgid "Mobile Telephone Number" +#: ipalib/plugins/sudocmd.py:65 +msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/user.py:214 -msgid "Pager Number" +#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +msgid "Sudo Command" msgstr "" -#: ipalib/plugins/user.py:218 -msgid "Fax Number" +#: ipalib/plugins/sudocmd.py:77 +msgid "A description of this command" msgstr "" -#: ipalib/plugins/user.py:222 -msgid "Org. Unit" +#: ipalib/plugins/sudocmd.py:100 +msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/user.py:225 -msgid "Job Title" +#: ipalib/plugins/sudocmd.py:102 +#, python-format +msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:228 -msgid "Manager" +#: ipalib/plugins/sudocmd.py:107 +msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/user.py:231 -msgid "Car License" +#: ipalib/plugins/sudocmd.py:109 +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:234 -msgid "Account disabled" +#: ipalib/plugins/sudocmd.py:114 +msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/user.py:258 -msgid "" -"\n" -" Given a userid verify the user's existence and return the dn.\n" -" " +#: ipalib/plugins/sudocmd.py:116 +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:276 -msgid "manager %(manager)s not found" +#: ipalib/plugins/sudocmd.py:121 +msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/user.py:281 -msgid "" -"\n" -" Convert a manager dn into a userid\n" -" " +#: ipalib/plugins/sudocmd.py:124 +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "" + +#: ipalib/plugins/sudocmd.py:130 +msgid "Display Sudo Command." msgstr "" -#: ipalib/plugins/user.py:295 +#: ipalib/plugins/sudocmdgroup.py:25 msgid "" "\n" -" Add a new user.\n" -" " +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/user.py:298 -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:55 +msgid "sudo command group" msgstr "" -#: ipalib/plugins/user.py:303 -msgid "Don't create user private group" +#: ipalib/plugins/sudocmdgroup.py:56 +msgid "sudo command groups" msgstr "" -#: ipalib/plugins/user.py:333 -msgid "can be at most %(len)d characters" +#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72 +msgid "Sudo Command Group" msgstr "" -#: ipalib/plugins/user.py:400 -msgid "" -"\n" -" Delete a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:95 +msgid "Create new Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:404 -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:97 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:413 -msgid "" -"\n" -" Modify a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:103 +msgid "Delete Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:417 -msgid "Modified user \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:105 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:437 -msgid "" -"\n" -" Search for users.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:111 +msgid "Modify Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:444 -msgid "Self" +#: ipalib/plugins/sudocmdgroup.py:113 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:445 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/sudocmdgroup.py:119 +msgid "Search for Sudo Command Groups." msgstr "" -#: ipalib/plugins/user.py:463 -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" +#: ipalib/plugins/sudocmdgroup.py:122 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" msgstr[0] "" -#: ipalib/plugins/user.py:471 -msgid "" -"\n" -" Display information about a user.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:130 +msgid "Display Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:484 -msgid "" -"\n" -" Disable a user account.\n" -" " +#: ipalib/plugins/sudocmdgroup.py:136 +msgid "Add members to Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/sudocmdgroup.py:142 +msgid "Remove members from Sudo Command Group." msgstr "" -#: ipalib/plugins/user.py:507 +#: ipalib/plugins/sudorule.py:25 msgid "" "\n" -" Enable a user account.\n" -" " +"Sudo Rules\n" +"\n" +"Sudo (su \"do\") allows a system administrator to delegate authority to\n" +"give certain users (or groups of users) the ability to run some (or all)\n" +"commands as root or another user while providing an audit trail of the\n" +"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" +" 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" +" 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" +" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" +" Options: The various Sudoers Options that can modify Sudo's behavior.\n" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"To enable the binddn run the following command to set the password:\n" +"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +"\n" +"For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/user.py:512 -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:53 +msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/user.py:529 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked by\n" -" an administrator.\n" -" " +#: ipalib/plugins/sudorule.py:56 +msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/user.py:538 -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/sudorule.py:72 +msgid "sudo rule" msgstr "" -#: ipalib/plugins/virtual.py:20 -msgid "" -"\n" -"Base classes for non-LDAP backend plugins.\n" +#: ipalib/plugins/sudorule.py:73 +msgid "sudo rules" msgstr "" -#: ipalib/plugins/virtual.py:28 -msgid "" -"\n" -" A command that doesn't use the LDAP backend but wants to use the\n" -" LDAP access control system to make authorization decisions.\n" -"\n" -" The class variable operation is the commonName attribute of the\n" -" entry to be tested against.\n" -"\n" -" In advance, you need to create an entry of the form:\n" -" cn=, api.env.container_virtual, api.env.basedn\n" -"\n" -" Ex.\n" -" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n" -" " +#: ipalib/plugins/sudorule.py:92 +msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/virtual.py:44 -msgid "" -"\n" -" Perform an LDAP query to determine authorization.\n" -"\n" -" This should be executed before any actual work is done.\n" -" " +#: ipalib/plugins/sudorule.py:93 +msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/xmlclient.py:21 -msgid "" -"\n" -"XML-RPC client plugin.\n" +#: ipalib/plugins/sudorule.py:123 +msgid "Command category" msgstr "" -#: ipalib/cli.py:581 -#, python-format -msgid "Enter %(label)s again to verify: " +#: ipalib/plugins/sudorule.py:124 +msgid "Command category the rule applies to" msgstr "" -#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751 -#, c-format -msgid "Passwords do not match!" +#: ipalib/plugins/sudorule.py:129 +msgid "RunAs User category" msgstr "" -#: ipalib/cli.py:590 -msgid "Cancelled." +#: ipalib/plugins/sudorule.py:130 +msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/cli.py:819 -msgid "Command name" +#: ipalib/plugins/sudorule.py:135 +msgid "RunAs Group category" msgstr "" -#: ipalib/cli.py:1117 -msgid "No file to read" +#: ipalib/plugins/sudorule.py:136 +msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/errors.py:300 -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +#: ipalib/plugins/sudorule.py:156 +msgid "Sudo Allow Commands" msgstr "" -#: ipalib/errors.py:318 -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" +#: ipalib/plugins/sudorule.py:160 +msgid "Sudo Deny Commands" msgstr "" -#: ipalib/errors.py:334 -msgid "an internal error has occurred" +#: ipalib/plugins/sudorule.py:164 +msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/errors.py:356 -#, python-format -msgid "an internal error has occurred on server at %(server)r" +#: ipalib/plugins/sudorule.py:168 +msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/errors.py:372 -#, python-format -msgid "unknown command %(name)r" +#: ipalib/plugins/sudorule.py:172 +msgid "RunAs Users" msgstr "" -#: ipalib/errors.py:389 ipalib/errors.py:414 -#, python-format -msgid "error on server %(server)r: %(error)s" +#: ipalib/plugins/sudorule.py:173 +msgid "Run as a user" msgstr "" -#: ipalib/errors.py:405 -#, python-format -msgid "cannot connect to %(uri)r: %(error)s" +#: ipalib/plugins/sudorule.py:177 +msgid "Groups of RunAs Users" msgstr "" -#: ipalib/errors.py:423 -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" +#: ipalib/plugins/sudorule.py:178 +msgid "Run as any user within a specified group" msgstr "" -#: ipalib/errors.py:439 -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" +#: ipalib/plugins/sudorule.py:183 +msgid "External User" msgstr "" -#: ipalib/errors.py:465 -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" +#: ipalib/plugins/sudorule.py:184 +msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/errors.py:482 -msgid "did not receive Kerberos credentials" +#: ipalib/plugins/sudorule.py:188 +msgid "RunAs External User" msgstr "" -#: ipalib/errors.py:498 -#, python-format -msgid "Service %(service)r not found in Kerberos database" +#: ipalib/plugins/sudorule.py:189 +msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:514 -msgid "No credentials cache found" +#: ipalib/plugins/sudorule.py:193 +msgid "RunAs External Group" msgstr "" -#: ipalib/errors.py:530 -msgid "Ticket expired" +#: ipalib/plugins/sudorule.py:194 +msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/errors.py:546 -msgid "Credentials cache permissions incorrect" +#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618 +#: ipalib/plugins/sudorule.py:670 +msgid "Sudo Option" msgstr "" -#: ipalib/errors.py:562 -msgid "Bad format in credentials cache" +#: ipalib/plugins/sudorule.py:201 +msgid "RunAs Groups" msgstr "" -#: ipalib/errors.py:578 -msgid "Cannot resolve KDC for requested realm" +#: ipalib/plugins/sudorule.py:202 +msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/errors.py:597 -#, python-format -msgid "Insufficient access: %(info)s" +#: ipalib/plugins/sudorule.py:211 +msgid "Create new Sudo Rule." msgstr "" -#: ipalib/errors.py:641 +#: ipalib/plugins/sudorule.py:218 #, python-format -msgid "command %(name)r takes no arguments" +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:224 +msgid "Delete Sudo Rule." msgstr "" -#: ipalib/errors.py:661 +#: ipalib/plugins/sudorule.py:226 #, 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] "" +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:232 +msgid "Modify Sudo Rule." +msgstr "" -#: ipalib/errors.py:691 +#: ipalib/plugins/sudorule.py:234 #, python-format -msgid "overlapping arguments and options: %(names)r" +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:240 +msgid "Search for Sudo Rule." msgstr "" -#: ipalib/errors.py:707 +#: ipalib/plugins/sudorule.py:243 #, python-format -msgid "%(name)r is required" +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "" + +#: ipalib/plugins/sudorule.py:250 +msgid "Display Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:256 +msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/errors.py:723 ipalib/errors.py:739 +#: ipalib/plugins/sudorule.py:274 #, python-format -msgid "invalid %(name)r: %(error)s" +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" + +#: ipalib/plugins/sudorule.py:280 +msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/errors.py:755 +#: ipalib/plugins/sudorule.py:298 #, python-format -msgid "api has no such namespace: %(name)r" +msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:764 -msgid "Passwords do not match" +#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322 +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331 +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:340 +msgid "Add users and groups affected by Sudo Rule." +msgstr "" + +#: ipalib/plugins/sudorule.py:375 +msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:773 -msgid "Command not implemented" +#: ipalib/plugins/sudorule.py:408 +msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:782 -msgid "Client is not configured. Run ipa-client-install." +#: ipalib/plugins/sudorule.py:443 +msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144 -#: ipalib/errors.py:1424 ipalib/errors.py:1441 -#, python-format -msgid "%(reason)s" +#: ipalib/plugins/sudorule.py:477 +msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:826 -msgid "This entry already exists" +#: ipalib/plugins/sudorule.py:512 +msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/errors.py:842 -msgid "You must enroll a host in order to create a host service" +#: ipalib/plugins/sudorule.py:545 +msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" +#: ipalib/plugins/sudorule.py:580 +msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/errors.py:874 -msgid "" -"The realm for the principal does not match the realm for this IPA server" +#: ipalib/plugins/sudorule.py:613 +msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/errors.py:890 -msgid "This command requires root access" +#: ipalib/plugins/sudorule.py:655 +#, python-format +msgid "Added option \"%s\" to Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:906 -msgid "This is already a posix group" +#: ipalib/plugins/sudorule.py:665 +msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/errors.py:922 +#: ipalib/plugins/sudorule.py:710 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +msgid "Removed option \"%s\" from Sudo Rule \"%s\"" msgstr "" -#: ipalib/errors.py:938 -msgid "This entry is already enabled" +#: ipalib/plugins/user.py:29 +msgid "" +"\n" +"Users\n" +"\n" +"Manage user entries. All users are POSIX users.\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"Disabling a user account prevents that user from obtaining new Kerberos\n" +"credentials. It does not invalidate any credentials that have already\n" +"been issued.\n" +"\n" +"Password management is not a part of this module. For more information\n" +"about this topic please see: ipa help passwd\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new user:\n" +" ipa user-add --first=Tim --last=User --password tuser1\n" +"\n" +" Find all users whose entries include the string \"Tim\":\n" +" ipa user-find Tim\n" +"\n" +" Find all users with \"Tim\" as the first name:\n" +" ipa user-find --first=Tim\n" +"\n" +" Disable a user account:\n" +" ipa user-disable tuser1\n" +"\n" +" Enable a user account:\n" +" ipa user-enable tuser1\n" +"\n" +" Delete a user:\n" +" ipa user-del tuser1\n" msgstr "" -#: ipalib/errors.py:954 -msgid "This entry is already disabled" +#: ipalib/plugins/user.py:73 +msgid "Kerberos keys available" msgstr "" -#: ipalib/errors.py:970 -msgid "This entry cannot be enabled or disabled" +#: ipalib/plugins/user.py:140 +msgid "user" msgstr "" -#: ipalib/errors.py:986 -msgid "This entry is not a member" +#: ipalib/plugins/user.py:141 +msgid "users" msgstr "" -#: ipalib/errors.py:1002 -msgid "A group may not be a member of itself" +#: ipalib/plugins/user.py:177 +msgid "User login" msgstr "" -#: ipalib/errors.py:1018 -msgid "This entry is already a member" +#: ipalib/plugins/user.py:184 +msgid "First name" msgstr "" -#: ipalib/errors.py:1034 -#, python-format -msgid "Base64 decoding failed: %(reason)s" +#: ipalib/plugins/user.py:188 +msgid "Last name" msgstr "" -#: ipalib/errors.py:1066 -msgid "A group may not be added as a member of itself" +#: ipalib/plugins/user.py:191 +msgid "Full name" msgstr "" -#: ipalib/errors.py:1082 -msgid "The default users group cannot be removed" +#: ipalib/plugins/user.py:196 +msgid "Display name" msgstr "" -#: ipalib/errors.py:1098 -msgid "Host does not have corresponding DNS A record" +#: ipalib/plugins/user.py:201 +msgid "Initials" msgstr "" -#: ipalib/errors.py:1113 -msgid "Deleting a managed group is not allowed. It must be detached first." +#: ipalib/plugins/user.py:207 +msgid "Home directory" msgstr "" -#: ipalib/errors.py:1128 -msgid "A managed group cannot have a password policy." +#: ipalib/plugins/user.py:212 +msgid "GECOS field" msgstr "" -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." +#: ipalib/plugins/user.py:218 +msgid "Login shell" msgstr "" -#: ipalib/errors.py:1176 -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." +#: ipalib/plugins/user.py:223 +msgid "Kerberos principal" msgstr "" -#: ipalib/errors.py:1192 -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" +#: ipalib/plugins/user.py:231 +msgid "Email address" msgstr "" -#: ipalib/errors.py:1216 -#, python-format -msgid "no command nor help topic %(topic)r" +#: ipalib/plugins/user.py:236 +msgid "Prompt to set the user password" msgstr "" -#: ipalib/errors.py:1240 -msgid "change collided with another change" +#: ipalib/plugins/user.py:243 +msgid "UID" msgstr "" -#: ipalib/errors.py:1256 -msgid "no modifications to be performed" +#: ipalib/plugins/user.py:244 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/errors.py:1272 -#, python-format -msgid "%(desc)s: %(info)s" +#: ipalib/plugins/user.py:251 +msgid "Group ID Number" msgstr "" -#: ipalib/errors.py:1288 -msgid "limits exceeded for this query" +#: ipalib/plugins/user.py:257 +msgid "Street address" msgstr "" -#: ipalib/errors.py:1303 -#, python-format -msgid "%(info)s" +#: ipalib/plugins/user.py:261 +msgid "City" msgstr "" -#: ipalib/errors.py:1318 -msgid "modifying primary key is not allowed" +#: ipalib/plugins/user.py:265 +msgid "State/Province" msgstr "" -#: ipalib/errors.py:1334 -#, python-format -msgid "%(attr)s: Only one value allowed." +#: ipalib/plugins/user.py:268 +msgid "ZIP" msgstr "" -#: ipalib/errors.py:1350 -#, python-format -msgid "%(attr)s: Invalid syntax." +#: ipalib/plugins/user.py:272 +msgid "Telephone Number" msgstr "" -#: ipalib/errors.py:1366 -#, python-format -msgid "Bad search filter %(info)s" +#: ipalib/plugins/user.py:275 +msgid "Mobile Telephone Number" msgstr "" -#: ipalib/errors.py:1391 -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" +#: ipalib/plugins/user.py:278 +msgid "Pager Number" msgstr "" -#: ipalib/errors.py:1407 -#, python-format -msgid "Certificate format error: %(error)s" +#: ipalib/plugins/user.py:282 +msgid "Fax Number" msgstr "" -#: ipalib/errors.py:1458 -msgid "Already registered" +#: ipalib/plugins/user.py:286 +msgid "Org. Unit" msgstr "" -#: ipalib/errors.py:1474 -msgid "Not registered yet" +#: ipalib/plugins/user.py:289 +msgid "Job Title" msgstr "" -#: ipalib/frontend.py:398 -msgid "Results are truncated, try a more specific search" +#: ipalib/plugins/user.py:292 +msgid "Manager" msgstr "" -#: ipalib/frontend.py:850 -msgid "" -"Retrieve and print all attributes from the server. Affects command output." +#: ipalib/plugins/user.py:295 +msgid "Car License" msgstr "" -#: ipalib/frontend.py:856 -msgid "Print entries as stored on the server. Only affects output format." +#: ipalib/plugins/user.py:298 +msgid "Account disabled" msgstr "" -#: ipalib/frontend.py:985 -msgid "Forward to server instead of running locally" +#: ipalib/plugins/user.py:340 +#, python-format +msgid "manager %(manager)s not found" msgstr "" -#: ipalib/output.py:92 -msgid "A dictionary representing an LDAP entry" +#: ipalib/plugins/user.py:359 +msgid "Add a new user." msgstr "" -#: ipalib/output.py:100 -msgid "A list of LDAP entries" +#: ipalib/plugins/user.py:361 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/output.py:111 -msgid "All commands should at least have a result" +#: ipalib/plugins/user.py:368 +msgid "Don't create user private group" msgstr "" -#: ipalib/parameters.py:296 -msgid "incorrect type" +#: ipalib/plugins/user.py:398 +#, python-format +msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/parameters.py:299 -msgid "Only one value is allowed" +#: ipalib/plugins/user.py:475 +msgid "Delete a user." msgstr "" -#: ipalib/parameters.py:901 -msgid "must be True or False" +#: ipalib/plugins/user.py:477 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1002 -msgid "must be an integer" +#: ipalib/plugins/user.py:486 +msgid "Modify a user." msgstr "" -#: ipalib/parameters.py:1054 +#: ipalib/plugins/user.py:488 #, python-format -msgid "must be at least %(minvalue)d" +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1064 -#, python-format -msgid "can be at most %(maxvalue)d" +#: ipalib/plugins/user.py:510 +msgid "Search for users." msgstr "" -#: ipalib/parameters.py:1074 -msgid "must be a decimal number" +#: ipalib/plugins/user.py:517 +msgid "Self" msgstr "" -#: ipalib/parameters.py:1097 -#, python-format -msgid "must be at least %(minvalue)f" +#: ipalib/plugins/user.py:518 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/parameters.py:1107 +#: ipalib/plugins/user.py:539 #, python-format -msgid "can be at most %(maxvalue)f" +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" + +#: ipalib/plugins/user.py:546 +msgid "Display information about a user." +msgstr "" + +#: ipalib/plugins/user.py:560 +msgid "Disable a user account." msgstr "" -#: ipalib/parameters.py:1174 +#: ipalib/plugins/user.py:563 #, python-format -msgid "must match pattern \"%(pattern)s\"" +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1192 -msgid "must be binary data" +#: ipalib/plugins/user.py:581 +msgid "Enable a user account." msgstr "" -#: ipalib/parameters.py:1208 +#: ipalib/plugins/user.py:585 #, python-format -msgid "must be at least %(minlength)d bytes" +msgid "Enabled user account \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/user.py:602 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked by\n" +" an administrator." msgstr "" -#: ipalib/parameters.py:1218 +#: ipalib/plugins/user.py:611 #, python-format -msgid "can be at most %(maxlength)d bytes" +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/parameters.py:1228 +#: ipalib/util.py:192 #, python-format -msgid "must be exactly %(length)d bytes" +msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/parameters.py:1246 -msgid "must be Unicode text" +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" msgstr "" -#: ipalib/parameters.py:1277 -#, python-format -msgid "must be at least %(minlength)d characters" +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/parameters.py:1287 -#, python-format -msgid "can be at most %(maxlength)d characters" +#: ipalib/util.py:233 +msgid "too many '@' characters" msgstr "" -#: ipalib/parameters.py:1297 -#, python-format -msgid "must be exactly %(length)d characters" +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" msgstr "" -#: ipalib/parameters.py:1315 -#, python-format -msgid "The character '%(char)r' is not allowed." +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" msgstr "" -#: ipalib/parameters.py:1355 -#, python-format -msgid "must be one of %(values)r" +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" msgstr "" -#: ipalib/util.py:200 -#, python-format -msgid "Permission denied: %(file)s" +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/x509.py:213 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398 -#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541 -#: ipaserver/plugins/dogtag.py:1600 +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603 +#: ipaserver/plugins/dogtag.py:1662 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" @@ -7139,6 +7263,11 @@ msgstr "" msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" +#: ipaserver/plugins/ldap2.py:401 +#, python-format +msgid "objectclass %s not found" +msgstr "" + #: ipaserver/plugins/selfsign.py:99 #, python-format msgid "" @@ -7163,283 +7292,297 @@ msgstr "" msgid "certutil failure" msgstr "" -#: ipa-client/config.c:55 +#: ipa-client/config.c:56 #, c-format msgid "cannot open configuration file %s\n" msgstr "" -#: ipa-client/config.c:62 +#: ipa-client/config.c:63 #, c-format msgid "cannot stat() configuration file %s\n" msgstr "" -#: ipa-client/config.c:68 +#: ipa-client/config.c:69 #, c-format msgid "out of memory\n" msgstr "" -#: ipa-client/config.c:79 +#: ipa-client/config.c:80 #, c-format msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821 -#: ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:85 #, c-format -msgid "Kerberos context initialization failed\n" +msgid "Kerberos context initialization failed: %s (%d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:96 +#, c-format +msgid "Unable to parse principal: %s (%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834 +#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:155 +#: ipa-client/ipa-getkeytab.c:165 #, c-format msgid "Out of memory!?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 #, c-format msgid "Out of memory\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:203 +#: ipa-client/ipa-getkeytab.c:213 #, c-format msgid "Warning unrecognized encryption type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:218 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Warning unrecognized salt type: [%s]\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:245 +#: ipa-client/ipa-getkeytab.c:255 #, c-format msgid "Enctype comparison failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:307 +#: ipa-client/ipa-getkeytab.c:317 #, c-format msgid "Failed to create random key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337 -#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382 +#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 +#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 #, c-format msgid "Failed to create key!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360 -#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426 -#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751 -#: ipa-client/ipa-join.c:819 +#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550 +#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806 #, c-format msgid "Out of memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:381 #, c-format msgid "Bad or unsupported salt type (%d)!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:492 +#: ipa-client/ipa-getkeytab.c:502 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:507 +#: ipa-client/ipa-getkeytab.c:517 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:545 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:552 +#: ipa-client/ipa-getkeytab.c:562 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:576 +#: ipa-client/ipa-getkeytab.c:586 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:583 +#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219 +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:600 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:596 +#: ipa-client/ipa-getkeytab.c:613 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:606 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "SASL Bind failed!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635 -#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649 +#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 +#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665 +#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 +#: ipa-client/ipa-getkeytab.c:689 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698 +#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 #, c-format msgid "ber_scanf() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:736 +#: ipa-client/ipa-getkeytab.c:753 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:742 +#: ipa-client/ipa-getkeytab.c:759 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:793 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:778 +#: ipa-client/ipa-getkeytab.c:795 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:796 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 msgid "" "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:787 +#: ipa-client/ipa-getkeytab.c:804 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:805 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:790 +#: ipa-client/ipa-getkeytab.c:807 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:791 +#: ipa-client/ipa-getkeytab.c:808 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:810 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:812 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:797 +#: ipa-client/ipa-getkeytab.c:814 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:837 +#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:854 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:841 +#: ipa-client/ipa-getkeytab.c:858 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:860 +#: ipa-client/ipa-getkeytab.c:877 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:873 +#: ipa-client/ipa-getkeytab.c:890 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. " "-P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:885 +#: ipa-client/ipa-getkeytab.c:902 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:893 +#: ipa-client/ipa-getkeytab.c:910 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:901 +#: ipa-client/ipa-getkeytab.c:918 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:909 +#: ipa-client/ipa-getkeytab.c:926 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:916 +#: ipa-client/ipa-getkeytab.c:933 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:935 +#: ipa-client/ipa-getkeytab.c:952 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:944 +#: ipa-client/ipa-getkeytab.c:961 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:950 +#: ipa-client/ipa-getkeytab.c:967 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -7459,248 +7602,236 @@ msgstr "" msgid "access() on %s failed: errno = %d\n" msgstr "" -#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197 +#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:204 +#: ipa-client/ipa-join.c:206 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:210 +#: ipa-client/ipa-join.c:212 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:216 +#: ipa-client/ipa-join.c:225 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:236 +#: ipa-client/ipa-join.c:245 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:269 +#: ipa-client/ipa-join.c:280 #, c-format msgid "Search for %s on rootdse failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331 +#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:322 -#, c-format -msgid "Search for ipaCertificateSubjectBase failed with error %d" -msgstr "" - -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:316 #, c-format -msgid "Unable to determine root DN of %s\n" +msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:399 +#: ipa-client/ipa-join.c:322 #, c-format -msgid "Unable to determine certificate subject of %s\n" +msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:407 +#: ipa-client/ipa-join.c:368 #, c-format -msgid "Unable to make an LDAP connection to %s\n" +msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:432 +#: ipa-client/ipa-join.c:439 #, c-format -msgid "Searching with %s in %s\n" +msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:438 +#: ipa-client/ipa-join.c:457 #, c-format -msgid "ldap_search_ext_s: %s\n" +msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:446 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "Unable to find host '%s'\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:453 +#: ipa-client/ipa-join.c:481 #, c-format -msgid "Unable to get binddn for host '%s'\n" +msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:466 +#: ipa-client/ipa-join.c:605 #, c-format -msgid "Host already has principal, trying bind anyway\n" +msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 +#: ipa-client/ipa-join.c:620 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:484 -#, c-format -msgid "Incorrect password.\n" -msgstr "" - -#: ipa-client/ipa-join.c:495 -#, c-format -msgid "principal not found in host entry\n" -msgstr "" - -#: ipa-client/ipa-join.c:618 -#, c-format -msgid "principal not found in XML-RPC response\n" -msgstr "" - -#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900 +#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915 +#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925 +#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:732 +#: ipa-client/ipa-join.c:719 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:741 +#: ipa-client/ipa-join.c:728 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:759 +#: ipa-client/ipa-join.c:746 #, c-format msgid "Error parsing \"%s\": %s.\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:764 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:788 +#: ipa-client/ipa-join.c:775 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:796 +#: ipa-client/ipa-join.c:783 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:846 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:849 +#: ipa-client/ipa-join.c:836 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:854 +#: ipa-client/ipa-join.c:841 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:932 +#: ipa-client/ipa-join.c:919 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:940 +#: ipa-client/ipa-join.c:927 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not" " provided.\n" msgstr "" -#: ipa-client/ipa-join.c:954 +#: ipa-client/ipa-join.c:941 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:983 +#: ipa-client/ipa-join.c:970 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:973 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:989 +#: ipa-client/ipa-join.c:976 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:988 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1007 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1031 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1044 +#: ipa-client/ipa-join.c:1033 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1046 +#: ipa-client/ipa-join.c:1035 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1037 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1050 +#: ipa-client/ipa-join.c:1039 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1052 +#: ipa-client/ipa-join.c:1041 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1054 +#: ipa-client/ipa-join.c:1043 msgid "password" msgstr "" +#: ipa-client/ipa-join.c:1045 +msgid "LDAP basedn" +msgstr "" + +#: ipa-client/ipa-join.c:1045 +msgid "basedn" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:43 #, c-format msgid "Unable to parse principal name\n" @@ -7791,5 +7922,3 @@ msgstr "" #, c-format msgid "krb5_kt_close %d: %s\n" msgstr "" - - -- cgit